Flask拆分 解耦模式

2021-10-19 11:50:07 字數 2478 閱讀 5728

專案結構

# 環境變數,獲取當前flask環境

env = os.environ.setdefault('flask_env','devlop')

# 給manage.py 新增資料庫遷移的命令

manager.add_command('db',migratecommand)

if __name__ == '__main__':

manager.run()

from flask import flask  

# 載入配置檔案

# 初始化擴充套件物件

# 初始化檢視

import re  

class config(object):

debug = false

testing = false

sqlalchemy_track_modifications = false

@classmethod

def get_db_uri(cls,dbinfo):

engine = dbinfo.get('engine') or "sqlite3"

driver = dbinfo.get('driver') or ""

name = dbinfo.get('name') or ""

user = dbinfo.get('user') or ""

port = dbinfo.get('port') or ""

host = dbinfo.get('host') or ""

password = dbinfo.get('password') or ""

if re.match(r'^sqlite3?$', engine):

# 預設是sqlite資料庫

db_uri = "{}://{}/{}.{}".format(driver, host, name, engine)

else:

# database: engine+driver://user:password@host:port/database

db_uri = "{}+{}://{}:{}@{}:{}/{}".format(

engine, driver, user, password, host, port, name)

# 返回資料庫連線位址

return db_uri

class devlopconfig(config):

debug = true

# dbinfo =

# 載入資料庫

# sqlalchemy_database_uri = super().get_db_uri(dbinfo)

sqlalchemy_database_uri = 'sqlite:/'

# 設定環境設定配置

envs =

def config():

"""當前的配置檔案"""

return envs.get(os.environ.get('flask_env'))

from flask import blueprint

blue = blueprint('blue',__name__)

@blue.route('/')

def index():

return "index"

from flask_migrate import migrate

from flask_sqlalchemy import sqlalchemy

models = sqlalchemy()

migrate = migrate()

# 初始化模型類,及遷移模型物件

from .extends import models

class user(models):

id = models.column(models.integer,primary_key=true)

username = models.column(models.string)

password = models.column(models.string)

如何執行??在專案根目錄下:

python manage.py runserver

flask 的簡單拆分

建立結構如圖 自己去調整 if name main manage.run 建立新檔案 init py 以下 是裡面的內容 from flask import flask blue def 載入藍圖 建立views.py檔案 import uuid from flask import blueprin...

工廠模式實現解耦

1.首先建立乙個業務類service,在service中有乙個屬性dao,daoimpl是實現了dao介面的類 public class serviceimpl public inte ce dao 2.在建立乙個測試類 public class testmethod 3.我們發現這樣雖然完成業務但...

UI 解耦 MVC 模式

說起來ui解耦,邏輯盡量不要寫在ui裡邊,這是為什麼?如果是簡單的遊戲可以隨意寫。如果是大型遊戲,建議還是寫在mvc比較好。m 資料層 ui 所操作的資料 v 檢視層ui 的執行邏輯。非ui邏輯建議用註冊的方法 肯定有同學想到要是ui 才有引數呢?這個確實是個問題。因此就需要用到 c 層。c 因為無...