一、项目结构
| - flasky #项目根目录
| - app/ #flask程序
| - templates/ #模版文件(HTML)
| - static/ #静态文件(CSS/JavaScript)
| - main/ #关键功能入口
| - __init__.py #python包识别
| - error.py #错误处理
| - forms.py #表单处理
| - views.py #视图函数
| - __init__.py #python包识别
| - email.py #邮件模块
| - models.py #数据库模型
| - migrations/ #数据库迁移脚本
| - tests/ #测试包
| - __init__.py #python包识别
| - test*.py #测试用例
| - venv/ #虚拟环境包
| - requirements.txt #列出该项目所有依赖包
| - config.py #存储配置
| - manager.py #启动程序以及其他shell命令
二、配置选项
flask配置文件使用层次结构的配置类,更加灵活方便。
import os
basedir = os.path.abspath(os.path.dirname(__file__)
class config:
··· #基础配置选项
···
···
@staticmethod
def init_app(app):
pass
class DevelopmentConfig(Config):
# 开发环境下的配置
pass
class TestingConfig(Config):
# 测试环境下的配置
pass
class ProductionConfig(Config):
#生产环境中的配置
pass
#使用字典的形式存储不同的配置类型,导入的时候更为方便
config = {
'development' : DevelopmentConfig,
'testing' : TestingConfig,
'productin' : ProductionConfi,
'default' : DevelopmentConfig
}
三、程序包
程序包用来保存程序的所有代码、模版和静态文件,也包含数据库模型和电子邮件支持函数。
都存储在app/目录下
四、启动脚本
项目根目录下的manager.py文件用于启动程序。
该脚本先创建程序,再从FLASK_CONFIG中读取配置名
然后初始化Flask-Script、Flask-Migrate和为python shell定义上下文
文件头部添加shebang声明(#! /usr/bin/env python) 可以直接使用./manager执行
五、需求文件
requirements.txt文件为项目的需求文件
其中记录所有依赖包及其精确的版本号,如果需要重新生成虚拟环境则要用上
pip freeze >requirements.txt #自动生成需求文件
pip insltall -r requirements.txt #遍历文件安装相关依赖包
六、测试
挖坑以后填
七、创建数据库
python manager.py db upgrade