1. 结构图
2. 一般流程.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from flask import Flask
from auth.auth import Auth
from flask_session import Session
# 1. 引入Flask-SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
from .views.account import account
from .views.main import main
from .views.user import user
# 3. 导入models中的表
from .models import *
def create_app():
app = Flask(__name__)
app.debug = True
app.secret_key = 'sdiusdfsdf'
# 设置配置文件
app.config.from_object('settings.DevelopmentConfig')
# 注册蓝图
app.register_blueprint(account)
app.register_blueprint(user)
app.register_blueprint(main)
# 注册组件
# Session(app)
Auth(app)
# 2. 注册 Flask-SQLAlchemy
# 这个对象在其他地方想要使用
# SQLAlchemy(app)
db.init_app(app)
return app
manage.py
init.py 在 manage.py 里的 create_app 跳入之后的.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from flask import Flask
from auth.auth import Auth
from flask_session import Session
# 1. 引入Flask-SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
from .views.account import account
from .views.main import main
from .views.user import user
# 3. 导入models中的表
from .models import *
def create_app():
app = Flask(__name__)
app.debug = True
app.secret_key = 'sdiusdfsdf'
# 设置配置文件
app.config.from_object('settings.DevelopmentConfig')
# 注册蓝图
app.register_blueprint(account)
app.register_blueprint(user)
app.register_blueprint(main)
# 注册组件
# Session(app)
Auth(app)
# 2. 注册 Flask-SQLAlchemy
# 这个对象在其他地方想要使用
# SQLAlchemy(app)
db.init_app(app)
return app
init.py
1. 先处理 app.
db = SQLAlchemy()#实例化SQALchemy对象
# 1. 引入Flask-SQLAlchemy
from flask_sqlalchemy import SQLAlchemy #导入SQLALchemy
ps: 这个 db(sqlalchemy)对象就和 session 也一样,可以创建个对象. session 里面有个 __init__ 方法,里面含有各种方法.
2. 注册 Flask-SQLAlchemy.
运用类似 session 的__intit__ 引入传参数,然后在执行.
db = SQLAlchemy(app)#实例化SQALchemy对象. db= SQLALchemy(参数) 可以传个app参数
# 1. 引入Flask-SQLAlchemy
from flask_sqlalchemy import SQLAlchemy #导入SQLALchemy
3. 导入 models 表.
# 2. 注册 Flask-SQLAlchemy
# 这个对象在其他地方想要使用
# SQLAlchemy(app)
db.init_app(app)#执行
4. 写类继承 db.Model.
# 3. 导入models中的表
from .models import *
ps: 正经: 原来我们写的继承 Base.
不正经: 一下这种方式,饶了一圈.本质和 Base 一样的.
5. 主要功能: 创建,修改表等等功能. 中间有一步: 定制命令, manager=Manager(app)
5.1: 导入:from flask_migrate import Migrate, MigrateCommand
from app import create_app, db
5.2 创建 migrate 示例
5.3 创建 db 命令
连接数据库用配置文件 init 里的文件执行 .我们用了 flask 组件,以后就去配置文件里写就好了.
只要把 sqlalchemy 的参数拿到配置文件里就好了.
1. 拿配置文件
setting.py:
最后连上数据库:
3.Flask_migrate: 类似django的python manage.py db migrate = python manage.py makemigrations python manage.py db upgrade = python manage,
py migrate
二: 操作数据库
1. 对数据库做操作需要有 session.有了 session 才能做操作.那么 session 从哪来呢?
回答: db.session 它会自动帮我们创建 session. 它是 flask 里的 sqlalchemy 的对象里面的 session.
以前我们会的 session 两种:
1. 线程安全
2. 手动创建
后面两步:要 commit 和 remove
执行 sql 方式:
1. 第一种方式:
方式一:
2. 第二种方式:
result = db.session.query(models.User.id,models.User.name).all()
db.session.remove()
方式二:
result = models.Users.query.all() #局限于自己那张表
flask 回顾:用了哪些插件
Flask
DButils : 针对原生 sql 的时候用的. 之后如果需要用 sqlalchemy 那么我们就只好二选一了. 也可都用,但是最好不要这样.
获取环境中所有安装的模块.
Flask-session:
Flask-Script:
Flask-Migrate:
Flask-SQLAIchemy:
blinker:
wtforms:
requirements.txt:
pip3 freeze
pip3 freeze > requirements.txt
进入程序目录:
#pip3 install pipreqs#获取当前所在程序目录中涉及到的所有模块,
并自动生成requirements.txt且写入内容.pipreqs. / #写程序路径,
我们需要找谁,
它会帮我们找到
pip3 install -r requirements.txt
来源: http://www.bubuko.com/infodetail-2459837.html