newLion  

一、Flask入门

1.1 Flask介绍

  Python 实现的 Web 开发微框架

  小而美,丰富的周边扩展

1.2 Flask安装

  使用pip命令安装:

  pip install flask

  验证:

   >>> import flask

   >>> flask.__version__

  '1.0.2'

1.3 第一个Flask程序

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

参数__name__: 表示Flask应用的主模块或包的名称。Flask使用该参数确定应用的位置,然后找到应用中其他文件的位置,如网页中的图片目录,模板目录.

装饰器app.route(): 表示一个路由配置,即:用户在浏览器输入URL,使用对应的函数处理其中的业务逻辑.

1.4 MTV模型及扩展

  模型Model:Flask-PyMongo/Flask-MongoKit Flask-SQLAlchemy

  视图View:Flask-WTF/bootstrap-flask/Flask-Uploads 

  模板Template:Jinja2

1.5 启动选项及调试

  启动服务器

  步骤1:设置环境变量Windows: 

      set FLASK_APP=xxx.py 

      *inux: export FLASK_APP=xxx.py

  步骤2: flask run 启动内置web服务器

      指定IP及端口:flask run --host=0.0.0.0 --port=8001 或:flask run -h 0.0.0.0 p 8001

  开启调试模式

  代码修改后服务器自动重启

  步骤1:设置环境变量

      Windows: set FLASK_ENV=development 

      *inux: export FLASK_ENV=development

  步骤2: flask run 启动内置web服务器

  或者直接执行xxx.py(v1.0以前)

  步骤1:在文件中添加启动代码 

  if __name__ == '__main__':

    app.run(debug=True)

  步骤2: python xxx.py

1.6 url配置及路由

  方式一:使用装饰器 

    @app.route(url_name, methods)   示例:@app.route('/login', methods=['GET', 'POST'])  

  方式二:使用API配置

    app.add_url_rule(url, url_name, view_name)

  匹配整个文字  @app.route('/hello')

  传递参数    @app.route('/user/<username>')

  指定参数类型  @app.route('/post/<int:post_id>')

  url参数类型   string(接受任何不包含斜杠的文本(默认值)), int, float, path(类似 string ,但可以包含斜杠), uuid(接受 UUID 字符串) 

  查看URL规则列表    app.url_map

  URL逆向解析(根据名称解析成URL字符串)

      url_for(url_name, **kwargs)

      静态文件( js/css/图片)引用url_for('static', filename='style.css')

1.7 视图函数中获取页面的值

   URL中的值

  @app.route('/page/<page>') 

  def list_user(page):

   URL中的值为可选

  @app.route('/page/<page>') 

  def list_user(page=None):

1.8 请求-响应及上下文对象

  请求上下文对象:

    request:请求对象,封装了客户端发出的HTTP请求中的内容

    session:用户会话(dict),各请求之间的数据共享

  应用上下文对象:

    current_app:当前应用的实例

    g:处理请求时的临时存储对象,每次请求都会重设这个变量

  在分派请求之前激活应用上下文和请求上下文,在请求处理完成后将其删除。

  请求文常用参数

    method: 请求的类型(GET/POST/OPTIONS等)

    form: POST请求数据dict

    args: GET请求数据dict

    values: POST请求和GET请求数据集合dict

  请求文常用参数

    files: 上传的文件数据dict

    cookies: 请求中的cookie dict

    headers: HTTP请求头 

  请求钩子 

    before_first_request  

      服务器初始化后第一个请求到达前执行

    before_request

      每一个请求到达前执行

    after_request

      每次请求处理完成后执行,如果请求过程中产生了异常,则不执行

    teardown_request

      每次请求处理完成之后执行,如果请求过程中产生了异常也执行

  响应

    可以是字符串

    可以是元组(tuple):(response, status, headers)或(response, headers) 

  响应元组

    response——响应内容

    status——响应状态码

    headers——响应头信息

    使用make_response代替

1.9 重定向等内部视图

    redirect()实现重定向

    abort()处理错误

 

 

 

 

 

 

 

 

 

 

  

posted on 2021-07-07 09:47  newLion  阅读(80)  评论(0编辑  收藏  举报