诚意
诚意如你,当一诚的态度对待

导航

 

先安装Flask-SQLAlchemy,注意先学习蓝图目录结构

 

一:回顾蓝图目录结构

manage.py

import app
my_app = app.create_app()
if __name__ == '__main__':
    my_app.run()

 

app/__init__.py

from flask import Flask

my_app = Flask(__name__)

from .views.user import user
from .views.acc import acc

def create_app():
    my_app.register_blueprint(acc)  #注册蓝图
    my_app.register_blueprint(user)
    return my_app

 

二:使用 flask_sqlalchemy

基于上面的蓝图目录结构

1:创建表

app/__init__.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

my_app = Flask(__name__)
# 实例化SQLAlchemy db
= SQLAlchemy() #创建,# PS : 实例化SQLAlchemy的代码必须要在引入蓝图之前 from .views.user import user from .views.acc import acc def create_app(): # 创建数据库引擎,从init_app()源码中可以看到 my_app.config['SQLALCHEMY_DATABASE_URI']="mysql+pymysql://root:@127.0.0.1:3306/sqlal?charset=utf8" # SQLALCHEMY_POOL_SIZE 配置 SQLAlchemy 的连接池大小 my_app.config["SQLALCHEMY_POOL_SIZE"] = 5 # SQLALCHEMY_POOL_TIMEOUT 配置 SQLAlchemy 的连接超时时间 my_app.config["SQLALCHEMY_POOL_TIMEOUT"] = 15 my_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
  
db.init_app(my_app)# 初始化SQLAlchemy , 本质就是将以下的配置读取出来

    my_app.register_blueprint(acc)  #注册蓝图
    my_app.register_blueprint(user)
    return my_app

 

app/models.py

from app import db,create_app

class User(db.Model):  #相当于Django的Model
    __tablename__ = 'user'
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(32),index=True)

if __name__ == '__main__':
    my_app = create_app()
    db.drop_all(app=my_app)  #清空所有继承db.Model的ORM对象
    db.create_all(app=my_app)  #去数据库中创建继承db.Model的类

 

 

 

2:操作表

 在蓝图中操作表

user.py

from flask import Blueprint,jsonify
from app.models import User
from app import db

user = Blueprint('user',__name__)
@user.route('/user')
def user_func():
    user_obj = User(name='666')
    db.session.add(user_obj)
    db.session.commit()
    return "这是user蓝图页面"

@user.route('/user_list')
def user_list_func():
    res = User.query.first()   #查询
    ret = {"username":res.name}

    return jsonify(ret)

 

 

 

 

  

 


 

参考资料:

闫龙

http://flask-sqlalchemy.pocoo.org/2.3/  (Flask-SQLAlchemy )

 

posted on 2019-02-14 20:52  诚意  阅读(281)  评论(0)    收藏  举报