我刚刚创建了一个烧瓶应用程序,到目前为止我有一个路由器用于我的"Hello world!" 模板.
我想添加一些(很多)更多功能,但我想知道我应该如何构建app目录.
构建Flask应用程序最常用的方法是什么?例如,我应该为我的routes.py所有路线创建一个吗?SQLAlchemy的东西在哪里?模特应该在models.py吗?
dir*_*irn 33
您应该查看Flask文档的Patterns部分中的Larger Applications页面:http://flask.pocoo.org/docs/patterns/packages/.它似乎是大多数人在应用程序调用包而不是模块时遵循的模型.
我相信views.py你的意思routes.py.之后,模型会进入models.py,表格会进入forms.py,等等.
sim*_*cci 15
FlaskApp目录的示例:
yourapp/
/yourapp
/run.py
/config.py
/yourapp
/__init__.py
/views.py
/models.py
/static/
/main.css
/templates/
/base.html
/requirements.txt
/yourappenv
Run Code Online (Sandbox Code Playgroud)
run.py - 包含将导入应用程序并启动开发服务器的实际python代码.
config.py - 存储您的应用程序的配置.
__init__.py - 初始化您的应用程序,创建Flask应用程序实例.
views.py- 这是routes定义的地方.
models.py - 这是您为应用程序定义模型的地方.
static-包含静态文件,即CSS,Javascript,图片
templates-这是您存储html模板,即index.html,layout.html
requirements.txt-这就是你存储你的包依赖关系,您可以使用pip
yourappenv-你的虚拟环境对于发展
Moh*_*ati 10
我认为flask是微框架,现在你必须决定如何创建文件和文件夹.
我用这种方式:
这是靠近Django结构
我建议你看一些项目给你你想要的东西
Kim*_*kka 10
我会说,如果你拆分应用程序使用分区而不是功能结构.我提倡这一点,因为你更有可能在任何时候使用其中一个部门组件.
这种类型的结构非常适合市场或SaaS应用程序,其中不同的用户组使用不同类型的视图.API only flask app我可能会使用功能拆分.
以下是Flask Blueprints的示例.蓝图基本上是文档建议如何拆分Flask应用程序以获得更易于管理的部分.更多相关信息,请访问:http://exploreflask.com/en/latest/blueprints.html
这是分区拆分的一个例子.了解每个功能如何组合在一起.
yourapp/
__init__.py
admin/
__init__.py
views.py
static/
templates/
home/
__init__.py
views.py
static/
templates/
control_panel/
__init__.py
views.py
static/
templates/
models.py
Run Code Online (Sandbox Code Playgroud)
这是功能性示例>
yourapp/
__init__.py
static/
templates/
home/
control_panel/
admin/
views/
__init__.py
home.py
control_panel.py
admin.py
models.py
Run Code Online (Sandbox Code Playgroud)
任何为烧瓶项目寻找简单的初学者友好结构的人都可能会发现这很有帮助:
|__movies
|__run.py
|__app
??? templates
? ??? index.html
? ??? signup.html
??? __init__.py
??? routes.py
Run Code Online (Sandbox Code Playgroud)
这里的“电影”是主应用程序的名称。它包含“ run.py ”和一个名为“ app ”的文件夹。“应用程序”文件夹包含所有必要的文件烧瓶诸如“模板”文件夹,“ __init __.py ”和“ routes.py ”。
内容:
运行.py:
from app import app
Run Code Online (Sandbox Code Playgroud)
__init.py__:
from flask import Flask
app = Flask(__name__)
from app import routes
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
路线.py:
from app import app
@app.route('/')
@app.route('/index')
def index():
return "Hello, World!"
Run Code Online (Sandbox Code Playgroud)
您可以从此处的cookiecutter模板中获得启发,从而快速启动应用程序开发
烧瓶的美在于它的灵活性。您可以轻松构建类似项目结构的 django。Django 普及了应用程序中功能的抽象并使它们可重用,但对于许多项目来说这可能是一种矫枉过正。
但是有了烧瓶,你可以走任何一条路。编写可重复使用的应用程序或编写简单的应用程序。检查这些千篇一律的骨架-
myproject
??? config.py
??? instance
? ??? config.py
??? myproject
? ??? commands.py
? ??? controllers.py
? ??? extensions.py
? ??? forms.py
? ??? __init__.py
? ??? models.py
? ??? routes.py
? ??? ui
? ??? static
? ? ??? css
? ? ? ??? styles.css
? ? ??? js
? ? ??? custom.js
? ??? templates
? ??? index.html
??? README.md
??? requirements.txt
??? wsgi.py
myproject
??? config.py
??? development.py
??? instance
? ??? config.py
??? myproject
? ??? auth
? ? ??? controllers.py
? ? ??? forms.py
? ? ??? __init__.py
? ? ??? models.py
? ? ??? routes.py
? ??? helpers
? ? ??? controllers.py
? ? ??? __init__.py
? ? ??? models.py
? ??? __init__.py
? ??? ui
? ??? templates
? ??? 404.html
? ??? 500.html
? ??? base.html
??? README.md
??? requirements.txt
??? tests
? ??? auth
? ? ??? __init__.py
? ? ??? test_controllers.py
? ??? __init__.py
??? wsgi.py
| 归档时间: |
|
| 查看次数: |
52559 次 |
| 最近记录: |