Flask-SQLAlchemy 使用教程
Flask-SQLAlchemy ,是对SQLAlchemy进一步封装
SQLAlchemy使用教程地址: https://www.cnblogs.com/bigox/p/11552542.html
首先要先安装一下Flask-SQLAlchemy这个模块
pip install Flask-SQLAlchemy首先你要有一个干净的Flask项目
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
Flask-SQLAlchemy 使用教程的更多相关文章
- flask SQLAlchemy中一对多的关系实现
SQLAlchemy是Python中比较优秀的orm框架,在SQLAlchemy中定义了多种数据库表的对应关系, 其中一对多是一种比较常见的关系.利用flask sqlalchemy实现一对多的关系如 ...
- Flask Web中文教程
Flask Web中文教程:http://docs.jinkan.org/docs/flask/
- flask, SQLAlchemy, sqlite3 实现 RESTful API 的 todo list, 同时支持form操作
flask, SQLAlchemy, sqlite3 实现 RESTful API, 同时支持form操作. 前端与后台的交互都采用json数据格式,原生javascript实现的ajax.其技术要点 ...
- flask建表遇到的错误: flask,sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1071, 'Specified key was too long; max key length is 767 bytes')
error:flask,sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1071, 'Specifie ...
- Flask – SQLAlchemy成员增加
目录 简介 结构 展示 技术 运行 代码 创建数据库表单 views视图 home主页 添加成员addnew.html 展示页show_all 简介 结构 $ tree -I "__pyca ...
- 超实用的Flask入门基础教程,新手必备!
Flask入门基础教程 Flask简介 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活.轻便.安全且容易上手.它可以很好地结合MVC模式进行开发,开发人员分工合 ...
- Flask 中的 SQLAlchemy 使用教程
Flask 是一个 python web micro framework.所谓微框架,主要是 flask 简洁与轻巧,自定义程度高.相比 django 更加轻量级. 之前一直折腾 django,得益于 ...
- Python3+Flask安装使用教程
一.环境配置 当前我的开发环境是Miniconda3+PyCharm.开发环境其实无所谓,自己使用Python3+Nodepad都可以.安装Flask库: pip install Flask 二.第一 ...
- Python框架 Flask 项目实战教程
本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...
- Flask+SQLAlchemy+alembic+Flask-RESTful使用
前言 其实准备把这篇删掉,先写Flask-restful相关的,后来想想大体框架还是先写出来,这两天踩了很多坑,有的谷歌也没有答案.一直摸索也总算是开始了. 正文 SQLAlchemy/alembic ...
随机推荐
- 通过对比语法差异,让会JAVA的你快速学会Kotlin的开源宝藏项目
今天有个小伙伴来问TJ君,说自己JAVA用的贼溜,想再学习下Kotlin,问TJ君上手难不难? 怎么说呢?其实TJ君一直觉得语言这方面,是触类旁通.一通百通的,既然JAVA已经贼溜了,想必学其他的语言 ...
- Qt:QVector
0.说明 template <typename T> class QVector QVector是存储同一个类型T数据的模板类,其功能是动态数组,数据在其中的存储是一系列连续的存储空间. ...
- Java:Collections
说明 工具类,提供了许多静态方法,用于操作集合. 模块:java.util.Collections 方法:全是static方法,使用时直接Collections.xxx( ... ) 返回值类型 方法 ...
- Excel:获取等差时间
假设:从0:01:05开始,每隔1分30秒生成一个时间项 做法: 在A2处写 =TIME( 0,1,5 )构建一个TIME类型0:01:05,如果要构建别的时间,就按照TIME( 时 , 分 , 秒 ...
- 文件上传漏洞靶机upload-labs(1到10)
前言 项目地址:https://github.com/c0ny1/upload-labs pass-01(前端验证) 绕过方法:https://www.cnblogs.com/bk76120/p/12 ...
- 工程师计划3 -> 项目管理2 | 项目组织与团队管理
前几天才收到这门课的教材,发现网课的周和课本的章节不完全对应,我以教材的章节为单位进行总结和思考.这篇就是对于第二章的梳理. 0317附:这篇压了很久了,已经落后课程进度了.整理下来觉得有些偏理论,后 ...
- min_25 筛学习小记
min_25筛 由 dalao min_25 发明的筛子,据说时间复杂度是极其优秀的 \(O(\frac {n^{\frac 3 4}} {\log n})\),常数还小. 1. 质数 \(k\) 次 ...
- linux 内核以及mod
linux设计为单内核,但是使用了 微内核的设计思想 内核相关的两个文件夹 /proc /sys 设定内核运行参数方法 echo VALUE > /proc/sys/To/SOMEFILE sy ...
- # kubernetes节点不可调度
查看node [root@k8s-masterb ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-mastera Ready maste ...
- wordpress在线检测主题和插件
http://wpthemedetector.coderschool.cn/ http://www.wpthemedetector.com/ http://whatwpthemeisthat.com ...