Flask ==> Migrate

Flask  ==>   Migrate

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
manage.py
#!/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

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
相關文章
相關標籤/搜索