Flask-SQLAlchemy 使用教程
时间:2019-09-19
本文章向大家介绍Flask-SQLAlchemy 使用教程,主要包括Flask-SQLAlchemy 使用教程使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Flask-SQLAlchemy ,是对SQLAlchemy进一步封装
SQLAlchemy使用教程地址: https://www.cnblogs.com/bigox/p/11552542.html
首先要先安装一下Flask-SQLAlchemy这个模块
pip install Flask-SQLAlchemy
- 首先你要有一个干净的Flask项目
- 项目下载连接地址: https://pan.baidu.com/s/1H26uMUI5gRm4yqkqyAWY1A
1.加入Flask-SQLAlchemy第三方组件
from flask import Flask
# 导入Flask-SQLAlchemy中的SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
# 实例化SQLAlchemy
db = SQLAlchemy()
# PS : 实例化SQLAlchemy的代码必须要在引入蓝图之前
from .views.users import user
def 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 db
Base = 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_template
user = Blueprint("user", __name__)
from MyApp.models import Users
from 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
原文地址:https://www.cnblogs.com/bigox/p/11552590.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 自定义View | 仿QQ运动步数进度效果
- TS 设计模式05 - 装饰者模式
- 四、学编程语言前,不了解Git,怎么入坑
- 【设计模式系列(三)】彻底搞懂原型模式
- 分享一个可以装逼的开发技巧
- 各位相加,直到得到一个一位的整数
- BFE.dev前端刷题64 - Promise reject的时候自动retry
- 顺序消息管道《Message Pipe》v1.0.1版本发布
- Qt音视频开发23-通用视频控件
- 破解Mariadb5.5密码
- redis学习(七)
- 自己实现一个SAP WebClient UI Repository Information System
- ABAP,Java和JavaScript类的构造函数使用的一些陷阱
- Spring Security如何优雅的增加OAuth2协议授权模式
- 如何将自定义XML视图注入SAP Fiori Elements应用