博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask第十六篇 Flask-SQLAlchemy
阅读量:6193 次
发布时间:2019-06-21

本文共 2870 字,大约阅读时间需要 9 分钟。

前不久刚刚认识过了SQLAlchemy,

当 Flask 与 SQLAlchemy 发生火花会怎么样呢?

Flask-SQLAlchemy就这么诞生了

首先要先安装一下Flask-SQLAlchemy这个模块

pip install Flask-SQLAlchemy

然后你要下载一个干净的Flask项目 

接下来基于这个Flask项目,我们要加入Flask-SQLAlchemy让项目变得生动起来

 

1 加入Flask-SQLAlchemy第三方组件

from flask import Flask# 导入Flask-SQLAlchemy中的SQLAlchemyfrom flask_sqlalchemy import SQLAlchemy# 实例化SQLAlchemydb = SQLAlchemy()# PS : 实例化SQLAlchemy的代码必须要在引入蓝图之前from .views.users import userdef create_app():    app = Flask(__name__)    # 初始化App配置 这个app配置就厉害了,专门针对 SQLAlchemy 进行配置    # SQLALCHEMY_DATABASE_URI 配置 SQLAlchemy 的链接字符串儿    app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:DragonFire@127.0.0.1:3306/dragon?charset=utf8"    # SQLALCHEMY_POOL_SIZE 配置 SQLAlchemy 的连接池大小    app.config["SQLALCHEMY_POOL_SIZE"] = 5    # SQLALCHEMY_POOL_TIMEOUT 配置 SQLAlchemy 的连接超时时间    app.config["SQLALCHEMY_POOL_TIMEOUT"] = 15    app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False    # 初始化SQLAlchemy , 本质就是将以上的配置读取出来    db.init_app(app)    app.register_blueprint(user)    return appMyApp/__init__.py
View Code

2.建立models.py ORM模型文件

from MyApp import dbBase = db.Model # 这句话你是否还记的?# from sqlalchemy.ext.declarative import declarative_base# Base = declarative_base()# 每一次我们在创建数据表的时候都要做这样一件事# 然而Flask-SQLAlchemy已经为我们把 Base 封装好了# 建立User数据表class Users(Base): # Base实际上就是 db.Model    __tablename__ = "users"    __table_args__ = {
"useexisting": True} # 在SQLAlchemy 中我们是导入了Column和数据类型 Integer 在这里 # 就和db.Model一样,已经封装好了 id = db.Column(db.Integer,primary_key=True) username = db.Column(db.String(32)) password = db.Column(db.String(32))if __name__ == '__main__': from MyApp import create_app app = create_app() # 这里你要回顾一下Flask应该上下文管理了 # 离线脚本: with app.app_context(): db.drop_all() db.create_all()MyApp/models.py
View Code

3.登录视图函数的应用

from flask import Blueprint, request, render_templateuser = Blueprint("user", __name__)from MyApp.models import Usersfrom MyApp import db@user.route("/login",methods=["POST","GET"])def user_login():    if request.method == "POST":        username = request.form.get("username")        password = request.form.get("password")        # 还记不记得我们的        # from sqlalchemy.orm import sessionmaker        # Session = sessionmaker(engine)        # db_sesson = Session()        # 现在不用了,因为 Flask-SQLAlchemy 也已经为我们做好会话打开的工作        # 我们在这里做个弊:        db.session.add(Users(username=username,password=password))        db.session.commit()        # 然后再查询,捏哈哈哈哈哈        user_info = Users.query.filter(Users.username == username and User.password == password).first()        print(user_info.username)        if user_info:            return f"登录成功{user_info.username}"    return render_template("login.html")MyApp/views/user.py
View Code

 

其实Flask-SQLAlchemy比起SQLAlchemy更加的简单自如,用法几乎一模一样,就是在配置和启动上需要注意与Flask的配合就好啦

到这里Flask-SQLAlchemy告一段落

 

转载于:https://www.cnblogs.com/xintiao-/p/10446841.html

你可能感兴趣的文章
常用网址
查看>>
C/C++里的const(2)
查看>>
Gdiplus 贴图(助记) -------------------拖动整个对话框
查看>>
设计模式学习04:代理模式
查看>>
redis事务和脚本
查看>>
SecureCRT下传输文件
查看>>
Ioc与DI
查看>>
CTF杂项思路工具分享————2019/5/30
查看>>
Tarjan 求强连通分量
查看>>
简单封装的ajax请求
查看>>
CentOS4 可用镜像及更新方式
查看>>
关于栈和队列随想
查看>>
uml序列图
查看>>
服务器安全管理
查看>>
CF724E Goods transportation
查看>>
FFmpeg(七)音频的播放
查看>>
django之配置静态文件
查看>>
[Node.js]连接mongodb
查看>>
评论列表显示及排序,个人中心显示
查看>>
gitbook.explore更新升级了, 不能再搜索了
查看>>