zoukankan      html  css  js  c++  java
  • SQLAlchemy应用到Flask中

    安装模块

    • pip install Flask-SQLAlchemy

    加入Flask-SQLAlchemy第三方组件

    from flask import Flask
     
    # 导入Flask-SQLAlchemy中的SQLAlchemy
    from flask_sqlalchemy import SQLAlchemy
     
    # 实例化SQLAlchemy,db中封装了我们需要的很多东西
    db = SQLAlchemy()
    # PS : 实例化SQLAlchemy的代码必须要在引入蓝图之前
     
    from .views.users import user
      
    def create_app():
    	app = Flask(__name__)
         # 初始化App配置 这个app配置就厉害了,专门针对 SQLAlchemy 进行配置
         # SQLALCHEMY_DATABASE_URI 配置 SQLAlchemy 的链接字符串,数据库类型+引擎+://+数据库用户名:密码@host/数据库名?charset=utf8
    	app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:123@127.0.0.1:3306/mydb?charset=utf8"
         # SQLALCHEMY_POOL_SIZE 配置 SQLAlchemy 的连接池大小,最大50个。可选
    	app.config["SQLALCHEMY_POOL_SIZE"] = 5
         # SQLALCHEMY_POOL_TIMEOUT 配置 SQLAlchemy 的连接超时时间,可选
    	app.config["SQLALCHEMY_POOL_TIMEOUT"] = 15
         # 连接池中的链接能重复利用多少次,SQLALCHEMY_POOL_RECYCLE不用写即可
    	app.config["SQLALCHEMY_POOL_RECYCLE"] = None
    	app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False  # 改成False,避免报一些错误
     
         # 初始化SQLAlchemy , 本质就是将以上的配置读取出来
    	db.init_app(app)
        
    	app.register_blueprint(user)
     
    	return app
    

    启动文件manage.py

    from app import db,create_app
    
    myapp = create_app()
    
    if __name__ == "__main__":
        myapp.run()
    

    建立models.py ORM模型文件

    from app import db
    
    # Base = db.Model ===> Base = declarative_base()
    class Users(db.Model):
        __tablename__ = "users"
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String, nullable=False)
    
    if __name__ == '__main__':
        from app import create_app
        app = create_app()
        db.create_all(app=app)
    

    登录视图函数的应用

    from flask import Blueprint
    
    user = Blueprint("user", __name__)
    
    from app.models import Users
    from app import db
    @user.route("/user_list")
    def user_list():
        db.session.add(Users(name="nihao"))
        db.session.commit()
        res = Users.query.filter().all()
        return f"{len(res)}"
    
  • 相关阅读:
    [独库骑行之行路难]行路难!
    [独库骑行之我们穿过草原]巴音布鲁克大草原
    [独库骑行之我们路过湖泊]天山的高山湖泊
    [Tips]通过retintolibc方法编写通用exp的一个小技巧
    [独库骑行之奇山异石]丹霞地貌和雅丹地貌
    [独库骑行之我们穿过草原]美丽的乔尔玛草原
    [独库骑行之我们路过沙漠]塔克拉玛干的边缘
    [独库骑行之我们路过森林]那拉提的山林
    大家新年快乐!
    记忆力衰退
  • 原文地址:https://www.cnblogs.com/liuweida/p/11697924.html
Copyright © 2011-2022 走看看