目前,我正在为一家公司编写 Web 界面。
这个 Web 界面基于 python 微框架 Flask。我想使用MVC原理来构建这个接口。我有一些问题。
该模型将在 SQLAlchemy 的帮助下包含用于 ORM 映射的数据,没有问题。
这些视图基于一些html和css,我认为这里也不会有问题。
另一方面,控制器有点麻烦。
我想将页面分成模块并将脚本应用程序分成单独的模块,并将所有这些模块打包到一个控制器包中,例如:
- 会话模块(登录/注销/Cookie)
- 管理员模块(管理注册帐户/内容/等)
- 应用程序脚本 1 模块
- 应用程序脚本 2 模块
- 应用程序脚本 3 模块
我知道要渲染模板,您需要使用路由等。但是,如果调用某个链接,它将如何调用特定模块并从那里提取方法。是否可以为路由创建一个主控制器,并为路由中的每个方法导入上述模块之一?
@app.route('/')
def index():
return render_template("index.html")
@app.route('/login/', methods = ('GET', 'POST'))
def login():
from session import login
-> call method from 'login' here
@app.route('/account/<username>', methods = ('GET', 'POST'))
def login():
from administrator import view_account
-> call method from 'view_account' here
这是一个好习惯吗?或者我应该从标题开始并导入我在这个包中的每个模块。我的第一个想法是防止应用程序由于脚本的大小而加载太长,如果访问需要该模块的页面或类似的东西,只会调用某些模块。