基于Flask的微电影管理1(项目结构、引入蓝图)

我们为了使得整个项目更便于查看,引入蓝图。

项目结构

.
├── app						# Flask程序一般都保存在名为 app 的包中
│   ├── admin
│   │   ├── forms
│   │   │   └── __init__.py
│   │   ├── __init__.py
│   │   ├── utils.py
│   │   └── views
│   │       └── __init__.py
│   ├── home
│   │   ├── __init__.py
│   │   ├── forms.py
│   │   ├── utils.py
│   │   └── views.py
│   ├── __init__.py
│   ├── models.py
│   ├── static
│   │   ├── asset
│   │   │   ├── font-awesome
│   │   │   └── ueditor
│   │   ├── css
│   │   ├── fonts
│   │   ├── img
│   │   ├── js
│   │   └── upload
│   │       ├── movieImg
│   └── templates
│       ├── admin
│       ├── home
│       └── macro
├── config.py				# 存储配置
├── doc
├── manage.py				# 用于启动程序以及其他的程序任务
├── migrations				# 文件夹包含数据库迁移脚本
└── requirement.txt			# 用于记录所有依赖包及其精确的版本号
							# 便于在其他电脑中重新生成相同的虚拟环境
                      		# 使用 pip freeze > requirement.txt 可以自动生成这个文件
                      		# requirement.txt中的内容:
		                    ```
		                    Flask==0.10.1
		                    Werkzeug==0.9.4
		                    ......
		                    ```
		                    # 使用 pip install -r requirement.txt 可以下载这些模块

定义蓝图

app/admin/__init__.py中定义管理员的蓝图:

from flask import Blueprint

# 定义蓝图
# Blueprint接受两个参数实例化, 分别为蓝本的名字和蓝本所在的包或模块
# 大多数情况下第二个参数使用Python的 __name__ 变量即可
admin = Blueprint("admin", __name__)

# 导入所有的视图函数
from app.admin.views.main import *
from app.admin.views.tag import *
from app.admin.views.movie import *
from app.admin.views.preview import *
from app.admin.views.user import *
from app.admin.views.comment import *
from app.admin.views.collect import *
from app.admin.views.logs import *
from app.admin.views.auth import *
from app.admin.views.role import *
from app.admin.views.admin import *

app/home/__init__.py中定义用户的蓝图:

from flask import Blueprint

# 定义蓝图
home = Blueprint("home", __name__)

from app.home.views import *

app/__init__.py中注册蓝图:
写在文件末尾位置

# 创建蓝图的步骤
from app.admin import admin as admin_blueprint
from app.home import home as home_blueprint

# 注册admin蓝图, url_prefix='/admin'添加前缀/admin
app.register_blueprint(admin_blueprint, url_prefix='/admin')
# 注册home蓝图, 不添加前缀
app.register_blueprint(home_blueprint)
# 由于以上两条注册蓝图, 所以 127.0.0.1/login 即为前台登陆, 会员可见
# 127.0.0.1/admin/login 即为后台登陆, 管理员可见

猜你喜欢

转载自blog.csdn.net/dodobibibi/article/details/88878907