Flask开发文档
一、Flask介绍
1、flask
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。
Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-sqlAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MysqL,也可以用 Nosql。
其 Wsgi 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。
最新版本 1.0.2
2、Flask与Django框架对比
2.1 flask与django哪个框架好?
- 1.可能没有最好的工具,只有更合适的工具。
- 2.轻重对比
- Flask:轻量级的框架,只提供框架的核心功能
- Django:重量级的框架,提供了丰富的工具、组件
- 3.选择上
- Flask:自由、灵活、高度定制
- Django: 快速实现业务 、不考虑技术选型,越简单直接越好
2.2 Flask与Django对比
django提供了:
而这些,flask都没有,都需要扩展包来提供
3、Flask常用的拓展包
- Flask-sqlalchemy:操作数据库;
- Flask-script:插入脚本;
- Flask-migrate:管理迁移数据库;
- Flask-Session:Session存储方式指定;
- Flask-WTF:表单;
- Flask-Mail:邮件;
- Flask-Bable:提供国际化和本地化支持,翻译;
- Flask-Login:认证用户状态;
- Flask-OpenID:认证;
- Flask-RESTful:开发REST API的工具;
- Flask-Bootstrap:集成前端Twitter Bootstrap框架;
- Flask-Moment:本地化日期和时间;
- Flask-Admin:简单而可扩展的管理接口的框架
4、Flask官方文档
二、工程搭建
1、环境安装
- 创建虚拟环境
mkvirtualenv flask - p python3
workon # 进入虚拟环境、查看所有虚拟环境
deactivate # 退出虚拟环境
- 安装Flask
使用的是1.0.2版本
pip install flask
2、Flask的第一个程序
创建helloworld.py文件
# 导入Flask类
from flask import Flask
# Flask类接收一个参数__name__
app = Flask(__name__)
# 装饰器的作用是将路由映射到视图函数index
@app.route("/")
def index():
return "Hello World"
# flask应用程序实例的run方法启动服务器
if __name__ == "__main__":
app.run()
启动运行
python helloworld.py
3、参数说明
3.1 Flask对象初始化参数
- import_name
- static_url_path
- static_folder
- template_folder
修改参数示例:
app = Flask(__name__, static_url_path="/s", static_folder="folder")
3.2 应用程序配置参数
代码示例:
from flask import Flask
class DefaultConfig(object):
"""默认配置"""
SECRET_KEY = "HNhidiwi3442ojnko"
app = Flask(__name__)
app.config.from_object(DefaultConfig)
@app.route("/")
def index():
print(app.config["SECRET_KEY"])
return app.config["SECRET_KEY"]
if __name__ == '__main__':
app.run()
- 从配置文件中加载
SECRET_KEY = "123fefeifidwhhdho;"
from flask import Flask
app = Flask(__name__)
app.config.from_pyfile("settings.py")
@app.route("/")
def index():
print(app.config["SECRET_KEY"])
return app.config["SECRET_KEY"]
if __name__ == '__main__':
app.run()
- 从环境变量中加载
在linux系统中设置和读取环境变量的方式如下:
export 变量名=变量值 # 设置
echo $变量名 # 读取
flask使用环境变量加载配置的本质是通过环境变量值找到配置文件,再读取配置文件的信息。
环境变量的值为配置文件的绝对路径
代码示例:
在终端中执行如下命令,定义环境变量
export PROJECT_SETTING = "~/setting.py"
from flask import Flask
app = Flask(__name__)
app.config.from_envvar("PROJECT_SETTING", silent=True)
@app.route("/")
def index():
print(app.config["SECRET_KEY"])
return app.config["SECRET_KEY"]
if __name__ == '__main__':
app.run()
关于silent的说明:
表示系统环境变量中没有设置相应值时是否抛出异常
3.3 app.run()运行参数
可以指定运行的主机ip地址,端口,是否开启调试模式
app.run(host='0.0.0.0', post='5000', debug=True)
关于DEBUG调试模式:
4、开发服务器运行方式
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。