flask web模板三

在单蓝图多视图文件模板的基础上将配置文件拆分为两个

将项目根目录下的config.py移动到app目录下,并拆分成setting.py和secure.py两个配置文件
settings.py用来保存一些非机密的配置,比如程序中的参数、静态文件路径等生产环境和开发环境相同的配置信息,这个文件可以上传git
secure.py用来保存一些机密配置,比如数据库连接配置、是否开启DEBUG,这个文件用来保存开发环境和生产环境不同的配置,这个文件不能上传git
文件目录结构如下
.
├── app
│   ├── __init__.py
│   ├── secure.py
│   ├── setting.py
│   ├── static
│   │   └── favicon.ico
│   ├── templates
│   │   └── login.html
│   └── web
│   ├── account.py
│   ├── blueprint.py
│   ├── __init__.py
│   ├── server.py
│   └── user.py
├── Pipfile
├── Pipfile.lock
├── readme.txt
└── run.py

编辑app/__init__.py内容如下,修改读取配置文件的地方。

# -*- coding:utf-8 -*-
# 初始化flask核心对象

from flask import Flask


# 定义一个函数用来创建app核心对象
def create_app():
    app = Flask(__name__)
    # app.config.from_object('config')
    app.config.from_object('app.secure')
    app.config.from_object('app.setting')
    # 调用注册蓝图
    register_blueprint(app)
    return app


#  创建注册蓝图的方法
def register_blueprint(app):
    # 导入蓝图对象
    from app.web.blueprint import web
    app.register_blueprint(web)

编辑app/web/user.py 视图函数,添加一个测试视图函数读取公共配置文件信息

# -*- coding:utf-8 -*-
# 视图函数定义文件,定义和用户相关的视图函数

from .blueprint import web
# from flask import session, redirect
# 读取配置文件需要使用current_app
from flask import current_app


# @web.route('/user/')
# def user():
#    pass


# 让url前缀为 user的请求都要求登录
# @web.before_request
# def press_request(*args, **kwargs):
#     user = session.get('user_info')
#     if user:
#         return None
#     return redirect('/login/')


@web.route('/user/', methods=['GET', 'POST'])
def user():
    return 'user'


@web.route('/config/')
def config():
    return current_app.config['PIC_DIR']

创建一个图片目录 app/static/pic
在公共配置文件app/setting.py中添加如下

# -*- coding:utf-8 -*-
# 定义项目公共配置文件,生成环境可开发环境相同,可以上传git

# 图片目录
PIC_DIR = "static/pic/"

在项目根目录下创建git忽略配置文件.gitignore,内容如下

.idea
*.iml
*.swp
.idea/*
*.pyc
__pycache__
app/__pycache__
app/web/__pycache__
Pipfile.lock
app/secure.py

 

发表评论