1.結構圖python
2.通常流程。sql
#!/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
#!/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 在 manage.py 裏的 create_app 跳入以後的。數據庫
1.先處理app。django
# 1. 引入Flask-SQLAlchemy from flask_sqlalchemy import SQLAlchemy #導入SQLALchemy db = SQLAlchemy() #實例化SQALchemy對象
ps: 這個 db(sqlalchemy)對象就和session也同樣,能夠建立個對象。 session裏面有個 __init__ 方法,裏面含有各類方法。flask
2.註冊 Flask-SQLAlchemy。安全
運用相似session的__intit__ 引入傳參數,而後在執行。session
# 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表。app
# 3. 導入models中的表 from .models import *
4.寫類繼承db.Model。ide
ps: 正經: 原來咱們寫的繼承Base。ui
不正經: 一下這種方式,饒了一圈。本質和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