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

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

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

Flask-SQLAlchemy就这么诞生了

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

pip install Flask-SQLAlchemy

我们要加入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 app
MyApp/__init__.py

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

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

 

 

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

到这里Flask-SQLAlchemy告一段落

转载于:https://www.cnblogs.com/129TL/p/10384692.html

你可能感兴趣的文章
Leetcode 6——ZigZag Conversion
查看>>
dockerfile_nginx+PHP+mongo数据库_完美搭建
查看>>
Http协议的学习
查看>>
【转】轻松记住大端小端的含义(附对大端和小端的解释)
查看>>
设计模式那点事读书笔记(3)----建造者模式
查看>>
ActiveMQ学习笔记(1)----初识ActiveMQ
查看>>
Java与算法之(2) - 快速排序
查看>>
Windows之IOCP
查看>>
机器学习降维之主成分分析
查看>>
WebSocket & websockets
查看>>
openssl 升级
查看>>
ASP.NET MVC:通过 FileResult 向 浏览器 发送文件
查看>>
CVE-2010-2883Adobe Reader和Acrobat CoolType.dll栈缓冲区溢出漏洞分析
查看>>
使用正确的姿势跨域
查看>>
AccountManager教程
查看>>
Android学习笔记(十一)——从意图返回结果
查看>>
算法导论笔记(四)算法分析常用符号
查看>>
ultraedit激活
查看>>
总结(6)--- python基础知识点小结(细全)
查看>>
亿级曝光品牌视频的幕后设定
查看>>