SQLAlchemy应用到Flask中
2024-08-24 17:17:55
安装模块
- 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)}"
最新文章
- 表单多文件上传样式美化 &;&; 支持选中文件后删除相关项
- 深入JavaScript:词法分析、连续赋值猜想
- Linux 安装tomcat
- 可以使用mysql自己带的config edit
- angular directive scope
- SQL语句中SUM与COUNT的区别
- console 让 js 调试更简单
- 【LeetCode】Best Time to Buy and Sell Stock IV
- event级别设置Resumable Space Allocation
- 绑定下拉框时避免触发SelectedIndexChanged事件
- Qt信号槽机制的实现(面试的感悟,猜测每一个类保存的一个信号和槽的二维表,实际使用函数指针 元对象 还有类型安全的检查设定等等)
- 我的Fedora环境
- 你以为你真的会用编辑器----之Emacs
- 个人作业2-英语学习案例app分析
- mysql大小写敏感问题
- 对国内AR产业的预言
- Win32程序框架
- 第10章 网络安全(3)_安全套接字层SSL
- Centos 7 开放查看端口 防火墙关闭打开
- MiniDump产生工具