作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai
这是利用 Flask 开发一个网站专题的第二天,完整目录请点击这里
在编写配置和视图之前,首先为应用规划目录结构,具体如下:
├── app(应用目录)
│ ├── __init__.py
│ ├── config.py(配置文件)
│ ├── forms.py(表单文件)
│ ├── main(主体模块)
│ │ ├── __init__.py
│ │ ├── errors.py(错误视图)
│ │ └── views.py(主体视图)
│ ├── static(静态文件目录)
│ │ └── style.css
│ ├── templates(模版文件目录)
│ │ ├── 404.html
│ │ ├── 500.html
│ │ ├── index.html
│ │ └── pk.html
│ ├── users(用户模块)
│ │ ├── __init__.py
│ │ └── views.py
│ │ └── forms.py
└── manage.py
接下来我们再做一些准备工作,用pip安装如下几个扩展。
- Flask-Mail
Flask的邮件扩展,利用它可以方便快捷地给用户发送邮件。 - Flask-WTF
Flask的表单扩展,用它可以在代码中编写表单类和基础属性,在模版中渲染表单。 Flask-PyMongo
Flask的基于Pymongo的扩展,在为Flask应用部署MongoDB的连接时更加的快捷方便。- 接下来,编写表单文件。
首先从WTF扩展中导入Form类,我们要定义的表单类会继承到这个Form类,接下来简单地为表单定义三个域,两个文本输入框,validators中加入了wtforms.validators中的DataRequired的实例,它将会把这两个文本框设置为必填项。最后还有一个提交域,也就是提交该表单的按钮。
- 接下来,编写表单文件。
编写的文件位置为:app/users/forms.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from flask_wtf import Form
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
class PkForm(Form):
pk1 = StringField(validators=[DataRequired()])
pk2 = StringField(validators=[DataRequired()])
submit = SubmitField(label='pk一下')
2.编写蓝本文件
蓝本(Flask-Blueprint)有许多用途,其中一个常见的用途即是为应用的模块做url的划分。在一个应用的 URL 前缀和(或)子域上注册一个蓝图。 URL 前缀和(或)子域的参数 成为蓝图中所有视图的通用视图参数(缺省情况下)。关于蓝本的详细说明:http://dormousehole.readthedocs.org/en/latest/blueprints.html#blueprints 在Blueprint的参数中还可以指定模块的静态文件路径以及模版文件路径。还有一个比较好的例子参考这里。
编写的文件位置为:app/main/__init__.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from flask import Blueprint
main = Blueprint('main', __name__)
from . import views, errors