Flask-SQLAlchemy

1.安装

pip install Flask-SQLAlchemy

起步

# 1. 创建表
from flask import Flask
from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123@127.0.0.1/test?
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsecharset=utf8'db = SQLAlchemy(app)class User(db.Model):id = db.Column(db.Integer,primary_key=True)username = db.Column(db.String(32),unique=True,nullable=True)db.create_all()
# 2. 添加数据
db.session.add(User(username='admin'))

加入组件

from flask import Flask# 导入Flask-SQLAlchemy中的SQLAlchemy
from flask_sqlalchemy import SQLAlchemy# 实例化SQLAlchemy
db = 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"] = 15app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False# 初始化SQLAlchemy , 本质就是将以上的配置读取出来db.init_app(app)app.register_blueprint(user)return app

2.创建表

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_appapp = create_app()# 这里你要回顾一下Flask应该上下文管理了# 离线脚本:with app.app_context():db.drop_all()db.create_all()

登录视图函数的应用

from flask import Blueprint, request, render_templateuser = 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")

转载于:https://www.cnblogs.com/robertx/p/11123356.html

Flask-SQLAlchemy的基本使用相关推荐

  1. flask sqlalchemy一对多关系详解

    下面的一对多关系以作者和文章为例: 首先创建一个文章表: class Post(db.Model): id = db.Column(db.Integer(),primary_key=True) tit ...

  2. alchemy php,Flask SQLAlchemy

    在Flask Web应用程序中使用原始SQL对数据库执行CRUD操作可能很乏味. 相反,Python工具包SQLAlchemy是一个功能强大的OR映射器,为应用程序开发人员提供了SQL的全部功能和灵活 ...

  3. Flask SQLAlchemy - 2013 Lost Connection

    Flask SQLAlchemy - 2013 Lost Connection 原因 mysql默认的连接超时时间为10s.由于路由字段没有加索引导致有时单条sql执行若超过10s,报了连接超时. 解 ...

  4. Flask – SQLAlchemy成员增加

    目录 简介 结构 展示 技术 运行 代码 创建数据库表单 views视图 home主页 添加成员addnew.html 展示页show_all 简介 结构 $ tree -I "__pyca ...

  5. python学习之flask sqlalchemy介绍和使用 表操作增删查改

    flask sqlalchemy介绍和使用 表操作增删查改 内容详细 1 sqlalchemy介绍和快速使用 1.1 介绍 # SQLAlchemy是一个基于Python实现的ORM框架# djang ...

  6. mysql报错1517_请教一下 flask+sqlalchemy+mysql 连接错误问题

    在本地调试 docker-compose 调试 mysql+nginx+flask 程序,报错(2003, "Can't connect to MySQL server on '127.0. ...

  7. mysql flaskalchemy_python flask sqlalchemy 数据库mysql操作

    第一步app.py: # coding=utf-8 import urllib from flask import Flask from werkzeug.routing import BaseCon ...

  8. flask+sqlalchemy+echarts动态显示数据

    一.创建测试数据 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;-- ---------------------------- -- Table stru ...

  9. flask sqlalchemy wtf 使用笔记

    vip用户的model vip用户的model 这边 PlatUserFace 一定要写类名写表名会报错 获取用户信息 这里需要all 才能手动的去获取此用户Face的列表 vip用户的model 关 ...

  10. python3 flask sqlalchemy 数据库操作

    数据的查询 all():查询全部的数据,其结果是一个列表,每一个元素都是一个对象students = Student.query.all()过滤查询:第一种:filter,结果是baseQuery o ...

最新文章

  1. 解剖JavaScript中的null和undefined
  2. 双列集合,往treeMap里添加元素的时候注意的事项
  3. 10-30 团队的自动化
  4. 海量数据切分抽取的实践场景(r11笔记第43天)
  5. IOSday04 UIButton使用
  6. 理解Ruby的4种闭包:blocks, Procs, lambdas 和 Methods
  7. 随手记_C++常考面试题
  8. sqk,按分钟统计平均值
  9. 陕西师大计算机考研专业考408嘛,2021考研计算机408考试趋势分析
  10. SpringBoot兼容人大金仓数据库
  11. 数字化底层逻辑揭秘!探寻地产工程行业发展新范式
  12. 43_sql注入绕waf
  13. Html网页制作图片选择
  14. 【爬虫】关于企业信用信息公示系统-加速乐最新反爬虫机制
  15. java word转二进制_DWORD WORD到INT的转换
  16. 【JAVA中String类的相关知识】
  17. 交流中交易:金融业的专业社交
  18. 写给地方网站的创业新手(转载)
  19. 2019 年 5 月移动互联网全行业排行榜
  20. linux终端登校园网,使用神州登陆接入校园网

热门文章

  1. 处理SAP gateway service使用过程中遇到的400 error - Malformed URI literal syntax
  2. 一个SAP老司机多年的中间件使用心得
  3. 还在用SELECT COUNT统计数据库表的行数?Out了
  4. 虚拟机VirtualBox中Ubuntu无法全屏(终极解决方法)
  5. linux内核5.4,Linux Kernel 5.4 RC8 发布,一切都很正常
  6. php什么是阵列,php – 功能阵列的替代方法?
  7. 【复习】操作系统第一章
  8. mysql主主 主键冲突_mysql主从复制原理,主主复制时主键冲突解决
  9. 谷歌翻译api_翻译:TensorFlow on Android APP 示例
  10. mysql保存特殊表情_让 MySQL 支持 emoji 表情等特殊字符存储