第一节:入门Flask框架

 

  • 框架的安装
  • 第一个Flask应用程序
  • Flask内置服务器的启动,代码调试
  • 基础知识:HTTP/URL等
  • 请求到相应的流程

 一,框架的安装

1. 什么是flask框架?

——Python实现的web开发微框架

——小而美,有丰富的周边扩展

2.如何安装flask?

——pip install flask

——python setup.py install

二,第一个Flask应用程序

from flask import Flask

app = Flask(__name__)


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


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

1.参数__name__:

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

2.装饰器app.route()

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

三,MTV模型介绍

1. Model(模型):从数据库中取出的记录

2.View(视图):def函数

3.Template(模板):html

flask并不需要必须实现MTV,只要有核心的V便可运行。可以借助扩展来实现MT

四,Flask内置服务器的启动,调试

1.启动服务器:

——步骤一: 设置环境变量

    Windows: set FLASK_APP = app.py

    *linux: export FLASK_APP = app.py

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

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

2.开启调试模式

——步骤一: 设置环境变量

    Windows: set FLASK_ENV = development

    *linux: export FLASK_ENV = development

五,Flask的扩展

1. 什么是Flask扩展:

      为flask应用增加功能的包

六,URL配置及路由

1.路由配置:

——方式一:使用装饰器

      @app.route(url_name, methods)

——方式二:使用API配置

      app.add_url_rule(url,url_name,view_name)

2.方式一,使用装饰器:

——语法规则

      @app.route(url,methods)

——参数解释

      url: 匹配的URL地址

      methods:所支持的请求方式(['GET', 'POST'])

  方式二,使用API配置:

——语法规则

      app.add_url_rule(url,url_name,view_name)

——参数解释

      url:匹配的URL地址

      url_name:给URL的命名

      view_name:视图函数

3.路由匹配规则

——方式一:匹配整个文字

      @app.rourte('/index')

——方式二:传递参数

      @app.route('/user/<username>')

——方式三:指定参数类型

      @app.route('/user/<int:user_id>')

4.查看URL规则列表

      app.url_map 

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

   <1>url_for(url_name, **kwargs)

   <2>静态文件(js/css/图片)引用

      url_for('static',filename='style.css')

六,Flask请求-相应上下文对象

1.上下文对象

——应用上下文

——请求上下文

——在分派请求之前激活应用上下文的请求上下文

——在请求处理完成之后将其删除 

2.应用上下文对象:

      current_app:当前应用的实例

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

3.请求上下文对象:

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

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

七,请求报文

1.请求报文常用参数:

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

——form:POST请求数据dict

——args:GET请求数据dict

——values:POST请求和GET请求数据结合dict

——files:上传的文件数据dict

——cookies:请求中的cookie dict

——headers:HTTP请求头

2.请求报文练习:

——获取GET参数

——解析请求头中的IP地址

@app.route('/request')
def test_request():
    """ 请求报文练习 """
    get_args = request.args
    print(get_args)
    name = request.args.get('name', '程文')
    print(name)
    # 获取IP地址
    headers = request.headers
    host = headers.get('host')
    print(headers)
    print(host)
    ip = request.remote_addr
    print('ip =', ip)
    agent = request.headers.get('user_agent', None)
    print('user_agent:', agent)
    return 'get request'

3.请求钩子:

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

——before_request:每一个请求到达前执行

——after_request:每次请求处理完后执行,如果请求过程中出现的异常则不执行

——teardown_request每次请求处理完之后执行,如果请求中出现了异常也继续执行

钩子的应用场景:

八,响应报文 

1.响应:

——可以是字符串

return 'request success', 401

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

resp = make_response('这是一个响应对象', 201, {
        'ip_form': 'china'
    })
    resp.headers['user_id'] = 123
return resp

九,重定向等内部视图

 ——redirect()实现重定向

——abort()处理错误

@app.route('/')
def test_redirect():
    # ip拦截
    ip_list = ['127.0.0.0']
    ip = request.remote_addr
    if ip in ip_list:
        abort(404)
    return redirect('/hello')

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值