一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Flask框架工廠函數用法實例分析

Flask框架工廠函數用法實例分析

2021-06-29 00:24TKtalk Python

這篇文章主要介紹了Flask框架工廠函數用法,結合實例形式分析了Flask框架工廠函數定義、應用及相關操作注意事項,需要的朋友可以參考下

本文實例講述了Flask框架工廠函數用法。分享給大家供大家參考,具體如下:

在我們開始學習FLask的時候,創建應用的實例是用app=Flask(name)來做的,但是當我們想創建多個不同配置的實例的時候咋辦呢,每次都要改是不是很煩,那為了減少麻煩,我們可以采用調用一個create_app函數來返回應用實例的方法,這就是工廠方法的大概意思啦!

文字說的再多也難以幫助理解,看代碼示例:

1.最初的寫法

?
1
2
3
4
5
6
7
8
#__init__.py里面創建實例,應用實例對象創建完再引入視圖函數的模塊,因為這時候視圖函數上的@app.route()才有效
from flask import Flask
from myapp.admin import admin
import config
app = Flask(__name__)
app.config.from_object('config')
app.register_blueprint(admin)
from myapp import views
?
1
2
3
#run.py里面我們來啟動剛才創建的應用實例
from myapp import app
app.run(host='0.0.0.0')

2.改進,用工廠模式來創建應用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#__init__.py 改變創建app實例的方式,不之間創建app,而是通過create_app函數里面創建,再返回app對象,這樣的好處就是調用的時候才創建,想創建多少就調用多少,而且每次調用都能應用不同的配置參數,這里面這個create_app()就是應用的工廠方法!在工廠方法里面我們分別加載了配置擴展和藍圖!敲黑板!!!
from flask import Flask
from flask.ext.mail import Mail
from flask.ext.sqlalchemy import SQLAlchemy
from werkzeug.utils import import_string
mail = Mail()
db = SQLAlchemy()
blueprints = [
  'myapp.main:main',
  'myapp.admin:admin',
]
def create_app(config):
  app = Flask(__name__)
  app.config.from_object(config)
  # Load extensions
  mail.init_app(app)
  db.init_app(app)
  # Load blueprints
  for bp_name in blueprints:
    bp = import_string(bp_name)
    app.register_blueprint(bp)
  return app
?
1
2
3
4
#敲黑板!!!需要注意,用了工廠方法之后,就不像在單一文件中一樣有全局的app應用實例對象了,那怎么辦呢,沒有app就不能用裝飾器給視圖函數路由了,這里面我們要畫重點了:Flask的藍圖功能,我們剛才工廠函數里面已經注冊了藍圖了,我們要用藍圖對象路由
from flask import Blueprint
main = Blueprint('main', __name__)
from myapp.main import views
?
1
2
3
4
from myapp.main import main
@main.route('/')
def index():
  return '<h1>Hello World from app factory!</h1>'

run.py用了工廠函數之后,啟動就要調用工廠函數創建應用實例再啟動

?
1
2
3
4
from myapp import create_app
import config
app = create_app('config')
app.run(host='0.0.0.0', debug=True)

希望本文所述對大家基于flask框架的Python程序設計有所幫助。

原文鏈接:https://blog.csdn.net/u013205877/article/details/77802478

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 秒播影视 午夜福利毛片 | 国产免费看片 | 午夜香蕉成视频人网站高清版 | 久久黄视频 | 3p文两男一女办公室高h | 欧美一区二区三区在线观看免费 | 四虎永久在线精品国产 | 欧美日韩人成在线观看 | 欧美破苞合集 magnet | 美女吃jj | 国产经典一区二区三区蜜芽 | 36美女厕所撒尿全过程 | 亚欧毛片基地国产毛片基地 | 无码中文字幕热热久久 | 日韩欧美亚洲每日更新网 | 色综合合久久天天综合绕视看 | 免费看黄色片网站 | 国产我不卡 | 高清不卡免费一区二区三区 | 成人在线免费播放 | 日本三不卡 | 麻豆视频免费在线观看 | 青青在线视频免费 | 亚洲精品www久久久久久 | 久久亚洲一级α片 | 日本久久热 | 国产精品一区二区三 | 99视频免费 | 青青青国产视频 | 色老板在线视频观看 | 超鹏97国语| 精品成人一区二区三区免费视频 | 亚洲欧美日韩成人一区在线 | 狠狠干2016 | 午夜一级| 鬼吹灯天星术在线高清观看 | 人人人人看人人人做人人 | 好湿好紧太硬了我太爽了网站 | 四虎影视永久在线观看 | 亚洲高清国产拍精品动图 | 日本精品久久久久久久久免费 |