Flask ==> Migrate
Flask ==> Migrate
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 importmanage.pymain 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
#!/usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask from auth.auth import Auth from flask_session import Session # 1. 引入Flask-SQLAlchemyinit.pyfrom 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 在 manage.py 裏的 create_app 跳入之後的。
1.先處理app。
# 1. 引入Flask-SQLAlchemy from flask_sqlalchemy import SQLAlchemy #導入SQLALchemy db = SQLAlchemy() #實例化SQALchemy對象
ps: 這個 db(sqlalchemy)對象就和session也一樣,可以創建個對象。 session裏面有個 __init__ 方法,裏面含有各種方法。
2.註冊 Flask-SQLAlchemy。
運用類似session的__intit__ 引入傳參數,然後在執行。
# 1. 引入Flask-SQLAlchemy from flask_sqlalchemy import SQLAlchemy #導入SQLALchemy db = SQLAlchemy(app) #實例化SQALchemy對象。 db= SQLALchemy(參數) 可以傳個app參數
# 2. 註冊 Flask-SQLAlchemy
# 這個對象在其他地方想要使用
# SQLAlchemy(app)
db.init_app(app) #執行
3.導入models表。
# 3. 導入models中的表 from .models import *
4.寫類繼承db.Model。
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.第一種方式:
方式一: result = db.session.query(models.User.id,models.User.name).all() db.session.remove()
2.第二種方式:
方式二:
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
Flask ==> Migrate