flask 中xx.init_app(app)方法

bootstrap = Bootstrap()
mail = Mail()
moment = Moment()
db = SQLAlchemy() 

def create_app(config_name):
app = Flask(__name__) 

#将指定的配置通过from_object()方法导入app.config字典配置对象 

app.config.from_object(config[config_name]) 

config[config_name].init_app(app) 

bootstrap.init_app(app)
mail.init_app(app)
moment.init_app(app)
db.init_app(app) 

http://flask.pocoo.org/docs/0.12/patterns/appfactories/ 
flask 文档关于工厂模式里面提到了上面的这种套路。

It ’ s preferable to create your extensions and app factories so that the extension object does not initially get bound to the application.

Using Flask-SQLAlchemy, as an example, you should not do something along those lines:

def create_app(config_filename): 
app = Flask(__name__) 
app.config.from_pyfile(config_filename)

db = SQLAlchemy(app)

But, rather, in model.py (or equivalent):

db = SQLAlchemy()

and in your application.py (or equivalent):

def create_app(config_filename): 
app = Flask(__name__) 
app.config.from_pyfile(config_filename)

from yourapplication.model import db 
db.init_app(app)

原文地址:https://www.cnblogs.com/cuzz/p/8280183.html

时间: 2024-10-09 20:40:40

flask 中xx.init_app(app)方法的相关文章

flask中的request对象方法

'accept_charsets','accept_encodings','accept_languages','accept_mimetypes','access_route','application','args','authorization','base_url','blueprint','cache_control','charset','close','content_encoding','content_length','content_md5','content_type','

flask中的session对象方法

'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'modified', 'new', 'on_update', 'permanent', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues'

Flask中处理依赖的技巧

Flask应用中通常会用工厂模式 来创建应用对象,这样方便配置和测试.现在我们就用实例来学习Flask的处理依赖 应用代码 # app/__init__.pyfrom flask import Flaskfrom flask_xxxext import Xxxfrom flask_yyyext import Yyy# ... 一些flask拓展xx = Xxx()yy = Yyy() def create_app(config=None): app = Flask(__name__) xx.in

整合Flask中的目录结构

一.SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Text, ForeignK

python之celery在flask中使用

现在继续学习在集成的框架中如何使用celery. 在Flask中使用celery 在Flask中集成celery需要做到两点: 创建celery的实例对象的名字必须是flask应用程序app的名字,否则celery启动会失败: celery必须能顺利加载初始化文件. celery在flask中初始化 由于celery进程的运行和flask进程的运行是相互独立的,但是在框架中我们希望只使用一份配置文件,这样可以简化配置的工作. from celery import Celery from flas

flask框架----整合Flask中的目录结构

一.SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Text, ForeignK

Flask学习【第11篇】:整合Flask中的目录结构

SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Text, ForeignKey

Flask中session实现原理

前言 flask_session是flask框架实现session功能的一个插件,用来替代flask自带的session实现机制,flask默认的session信息保存在cookie中,不够安全和灵活. flask的session机制 session是用来干什么的呢?由于http协议是一个无状态的协议,也就是说同一个用户第一次请求和第二次请求是完全没有关系的,但是现在的网站基本上有登录使用的功能,这就要求必须实现有状态,而session机制实现的就是这个功能. 实现的原理: 用户第一次请求后,将

Flask中的 Render Redirect HttpResponse

1.Flask中的HTTPResponse from flask import Flask app = Flask(__name__) @app.route("/") # app中的route装饰器 def index(): # 视图函数 return "Hello DSB" # HTTPResponse app.run(debug=True) 在Flask中的HttpResponse在我们看来其实就是直接返回字符串 2.Flask中的Redirect from f