一、当前的项目结构
-
helloFlask(Project)
-
App
-
views
-
__init__.py
-
main.py
-
-
forms
-
models
-
static
-
templates
-
__init__.py
-
email.py
-
extensions.py
-
settings.py
-
-
migrations
-
venv
-
manage.py
-
二、每个py文件的配置
1、App/settings.py 程序的配置
import os BASE_PATH = os.path.abspath(os.path.dirname(__file__)) class Config(object): SECRET_KEY = 'secret_key' SQLALCHEMY_TRACK_MODIFICATION = True # SQLAlchemy 将会追踪对象的修改并且发送信号 #SQLALCHEMY_COMMIT_ON_TEARDOWN = False # 开发环境 class DevelopmentConfig(Config): SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:passwd@127.0.0.1:3306/dev_blog' #SQLALCHEMY_DATABASE_URI = 'sqlite:///+os.path.join(BASE_PATH,'dev_blog.sqlite') DEBUG = True #测试环境 class TestingConfig(Config): SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:passwd@127.0.0.1:3306/test_blog' DEBUG = False #生产环境 class ProductionConfig(Config): SQLALCHEMY_DATABASES_URI = 'mysql+pymysql://root:passwd@127.0.0.1:3306/blog' DEBUG = False #配置的字典 configDict = { 'default':DevelopmentConfig, 'development':DevelopmentConfig, 'teseing':TestingConfig, 'production':ProductionConfig
2、App/extensions.py 第三方扩展库配置
def config_extension(app): pass
3、App/views/main.py 首页视图函数
from flask import Blueprint main = Blueprint('main',__name__) @main.route('/') def index(): return 'index'
4、App/views/__init__.py
视图函数程序包构造文件
from .main import main # 首页蓝本 # 配置蓝本列表 blueprint_config = [ (main,''), ] # 注册蓝本 def blueprint_register(app): for blue,prefix in blueprint_config: app.register_blueprint(blue,url_prefix=prefix)
5、App/__ini__.py
程序的构造文件
from flask import Flask from .settings import configDict from .extensions import config_extension from .views import blueprint_register def create_app(configName): app = Flask(__name__) app.config.from_object(configDict[configName]) # 初始化Config类的配置环境 config_extension(app) # 第三方扩展库初始化app blueprint_register(app) # 注册蓝本 return app
6、manage.py 启动程序
from flask_script import Manager from App import create_app #导入app app = create_app('default') #加载配置,默认开发环境 manager = Manager(app) if __name__ == '__main__': manager.run()
最基本的框架已经搭好了
顺便记录下以后会用到的第三方扩展库
flask-moment flask-wtf flask-uploads flask-sqlalchemy flask-script flask-bootstrap Flask-mail flask-migrate flask-cache flask-login pymysql redis pillow