微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flask文档

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
    • flask程序所在的包(模块),传__name__就可以
    • 可以决定flask在访问静态文件时查找的路径
  • static_url_path
  • static_folder
  • template_folder

修改参数示例:

app = Flask(__name__, static_url_path="/s", static_folder="folder")

3.2 应用程序配置参数

  • 应用程序配置参数设置的是一个web应用工程的相关信息,比如:数据库的连接信息,日志的配置信息等。
  • 作用:集中管理项目的所有配置信息。
  • 使用方式:
    • Django将所有配置信息都放到了settings.py文件中,而Flask将配置信息保存到了app.config属性中,该属性可以按照字典类型进行操作。
  • 读取:
    • app.config.get(“name”)
    • app.config[name]
  • 设置参数的三种主要方式:
    • 从配置对象中加载app.config.from_object(配置对象)
    • 配置文件中加载app.config.from_pyfile(配置文件)
    • 从环境变量中加载app.config.from_envvar(环境变量名)
  • 从配置对象中加载

代码示例:

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()

示例代码
新建一个配置文件setting.py

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的说明:
表示系统环境变量中没有设置相应值时是否抛出异常

  • False 表示不安静的处理,没有值时报错通知认为False
  • True 表示安静的处理,即使没有值也让False正常的运行下去

3.3 app.run()运行参数
可以指定运行的主机ip地址,端口,是否开启调试模式

app.run(host='0.0.0.0', post='5000', debug=True)

关于DEBUG调试模式:

4、开发服务器运行方式

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐