#!/usr/bin/env python
# -*- coding: utf-8 -*-
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask import render_template,redirect, url_for
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://root:root@localhost:3306/news?charset=utf8"
app.config['SECRET_KEY'] = 'a random string'
db = SQLAlchemy(app)
class News(db.Model):
__tablename__ = 'news'
id = db.Column(db.INT, primary_key=True)
title = db.Column(db.String(200), nullable=False)
content = db.Column(db.Text(2000), nullable=False)
created_at = db.Column(db.DateTime,nullable=True)
types = db.Column(db.String(10), nullable=False)
image = db.Column(db.String(300), nullable=False)
author = db.Column(db.String(20), nullable=True)
view_count = db.Column(db.Integer,default=0)
is_valid = db.Column(db.Boolean,default=1)
# 关于flask的应用
@app.route('/')
def index():
'''首页'''
# 查询数据,返回一个list
obj_list = News.query.filter(News.is_valid==1).all()
new_list = []
for obj in obj_list:
new_list.append({'title':obj.title})
return new_list.__str__()
@app.route('/update/')
#查询一条title=666的数据,并修改为777,first()为显示第一条,all()则需要循环
def update():
new_obj = News.query.filter(News.title == '666').first()
new_obj.title='777'
db.session.add(new_obj)
db.session.commit()
return "修改记录id为 %s" % new_obj.id
@app.route('/delete/<int:pk>')
#删除一条数据
def delete(pk):
new_obj = News.query.get(pk)
if new_obj:
db.session.delete(new_obj)
db.session.commit()
return '删除记录id为 %d' %pk
else:
return '没有相关数据'
if __name__ == '__main__':
app.run(host='127.0.0.1',port=5001,debug=True)
flask_sqlalchemy与sqlalchemy写法一样,区别不大
https://blog.youkuaiyun.com/mic0601/article/details/80566875
参考文档:
http://www.pythondoc.com/flask-sqlalchemy/quickstart.html