Loading

Flask学习笔记(1)

Flask是基于Werkzeug工具箱编写的轻量级Web开发框架。

安装flask

pip install flask

入门

第一个程序

编写app.py

from flask import Flask

app = Flask(__name__)  # 传入__name__参数,决定了Flask在访问静态文件时查找的路径
# static_url_path 静态文件访问路径,可以不传,默认为:/+static_folder
# static_folder 静态文件存储的文件夹,可以不传,默认为:static
# app = Flask(__name__, static_url_path='/s', static_folder='static_files')

# 定义视图
@app.route('/')
def index():
    return 'hello world'

if __name__ == '__main__':
    app.run()

启动项目后访问:http://127.0.0.1:5000

初始化参数

在上述程序中,首先我们从 flask 包导入 Flask 类,通过实例化这个类,创建一个程序对象 app

from flask import Flask

app = Flask(__name__)

其中传入的__name__参数,决定了Flask在访问静态文件时查找的路径。

我们可以传入其他的参数,修改默认查找的静态文件名称:

from flask import Flask

app = Flask(__name__, static_url_path='/s', static_folder='static_files')

上述两个参数的作用:

static_url_path: 静态文件访问路径,可以不传,默认为:/+static_folder

static_folder: 静态文件存储的文件夹,可以不传,默认为:static

应用程序配置参数

比如:需要配置数据库的连接信息,日志的配置信息,自定义的配置信息...等等。

Flask将配置信息保存到了 app.config 属性中,可以通过 app.config.get(name)app.config[name]的方式进行读取。

主要有以下三种加载配置参数的方式:

  • 从配置对象中加载

    class DefaultConfig(object):
        """
        默认配置
        """
        SECRET_KEY = 'cah2q3l4df8ap5i5t6n7r8nv0mb'
    app.config.from_object(DefaultConfig)
    
  • 从配置文件中加载

    app.config.from_pyfile('setting.py')
    
  • 从环境变量中加载

    app.config.from_envvar('PROJECT_SETTING')
    

    注意:可以指定silent参数,表示系统环境中没有设置相应值时是否抛出异常,默认False

    app.config.from_envvar('PROJECT_SETTING', silent=False)
    

app.run参数

可以指定运行的主机IP地址,端口,是否开启调试模式

app.run(host='0.0.0.0', port=8080, debug=True)

Flask启动方式

除了可以在代码中使用 app.run() 的方式启动之外,还可以使用命令的方式启动。

终端启动

export FLASK_APP=app.py
flask run

可以指定端口号:

flask run -h 0.0.0.0 -p 8000

设置开发还是生产模式:

通过 FLASK_ENV 环境变量指定

export FLASK_ENV=production # 生产模式
export FLASK_ENV=development # 开发模式

注意:windows中使用 set 或者 $env: 替代 export

Flask常用的第三方扩展包

  • Flask-SQLAlchemy: 操作数据库,ORM

  • Flask-script: 终端脚本工具,脚手架

  • Flask-migrate: 管理迁移数据库

  • Flask-Session: 指定Session存储方式

  • Flask-WTF: 表单

  • Flask-Mail: 邮件

  • Flask-Babel: 提供国际化和本地化的支持

  • Flask-Login: 认证用户状态

  • Flask-OpenID: 认证,OAuth

  • Flask-RESTful: 开发REST API的工具

  • Flask JSON-RPC: 开发rpc远程服务调用

  • Flask-Bootstrap: 集成前端Bootstrap框架

  • Flask-Moment: 本地化日期和时间

  • Flask-Admin: 可扩展的管理接口的框架

posted @ 2021-08-25 14:41  charlatte  阅读(61)  评论(0编辑  收藏  举报