flask入门教程
声明:以下内容均为我个人的理解,如果发现错误或者疑问可以联系我共同探讨
简介#
Flask 是由 Armin ronacher 于 2010 年用 Python 语言基于 Werkzeug 工具箱编写的轻量级 Web 开发框架。
特点#
Flask 只提供核心功能,其他几乎所有的功能都需要用到拓展,比如可以通过 Flask-SQLAlchemy 拓展对数据库进行操作等等。
核心#
由 Werkzeug 与 Jinja2 组成,Werkzeug 是一个全面的 WSGI Web 应用程序库,Jinja 是一种现代且设计友好的 Python 模板语言。
Flask 常用扩展#
- Flask-SQLalchemy:操作数据库
- Flask-script:插入脚本
- Flask-migrate:管理迁移数据库
- Flask-Session:Session 存储方式指定
相关文档#
Flask 初体验#
安装并使用虚拟环境#
virtualenv 创建和管理虚拟环境#
# 安装
pip install virtualenv
# 创建
virtualenv flask_env
# 使用
source flask_env/bin/activate
Pipenv 创建和管理虚拟环境#
# 安装
pip install pipenv
# 创建
pipenv install
# 使用
pipenv shell
安装指定版本 flask 框架#
sudo pip install flask==1.0.2
创建一个文件,并带入编写第一个 Flask 程序#
touch helloflask.py
vim helloflask.py
在文件中写入以下代码
# 导入Flask类
from flask import Flask
# 传递__name__参数,创建一个叫app的Flask实例,该实例将会成为我们的 WSGI 应用。
app = Flask(__name__)
# 通过route装饰器来告诉Flask触发函数的URL
@app.route('/')
# index视图函数,在访问根路径时会调用该函数通过其返回值得到结果
def index():
return 'Hello Flask'
if __name__ == '__main__':
# 通过run方法启动web服务器
app.run()
退出编辑模式,运行该程序
python helloflask.py
可以看到以下结果
这样就启动了一个非常简单的内建的服务器。这个服务器用于测试应该是足够了,但是 用于生产可能是不够的。现在在浏览器中打开 127.0.0.1:5000/ ,应该可以看到 Hello Flask! 字样。
相关配置参数#
初始化参数#
创建 Flask 项目的第一步就是实例化 Flask 对象,以下是实例化对象需要的参数详解
import_name:Flask 程序所在的包 (模块),传
__name__
就可以,static_url_path:静态文件访问路径,可以不传,默认为:
/ + static_folder
static_folder:静态文件存储的文件夹,可以不传,默认为
static
static_host:使用远程主机存储静态文件的地址,默认为 None。当 host_matching 为 True 时,可以通过 static_folder 配置静态文件存储的文件夹
host_matching:设置
url_map.host_matching
属性,默认为 Falsesubdomain_matching:匹配路由时,请考虑与以下项相关的子域:data:`SERVER_NAME’。默认为 False。
template_folder:模板文件存储的文件夹,可以不传,默认为
templates
instance_path:默认情况下,应用程序的备用实例路径假定包或模块旁边的文件夹 “instance” 为实例路径。
instance_relative_config:如果将用于加载配置的相对文件名设置为 “True”,则假定该文件名相对于实例路径而不是应用程序根。
root_path:默认情况下,Flask 将自动计算应用程序根路径。在某些情况下,这无法实现(例如,如果包是 Python 3 命名空间包),需要手动定义。
程序加载配置#
在 Flask 程序运行前,我们可以给 Flask 设置相关配置,例如 ENV (应用程序在什么环境中运行),DEBUG (是否启用调试模式) TESTING (启用测试模式) 等配置,常见的有两种方式来实现.
从配置文件中加载:
app.config.from_pyfile()
创建一个配置文件
touch config.ini vim config.ini
写入配置信息
DEBUG = True
选择从配置文件加载
# 创建 Flask 类对象,指向程序所在的包的名称 app = Flask(__name__) # 从配置文件中加载配置 app.config.from_pyfile('config.ini')
从配置对象中加载:app.config.from_object ()
创建一个配置类,然后将类名传入即可
# 配置类 class ConfigObject(object): DEBUG = True # 创建 Flask 类对象,指向程序所在的包的名称 app = Flask(__name__) # 从配置对象中加载配置 app.config.from_object(Config)
程序运行配置#
这个 demo 中 Flask 项目程序启动的入口是 app.run ()。常见的配置选项有 host, port,debug,分别是设置运行主机的 ip 地址,端口号,是否打开调试模式,当配置文件与这里都有 debug 时,最终会以这里的 debug 为准。
app.run(host="127.0.0.1", port=8000)
路由
在 Web 开发中,路由是一种将 URL 转发到对应视图的程序。
本作品采用《CC 协议》,转载必须注明作者和本文链接