IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 第一节:入门Flask框架 -> 正文阅读

[Python知识库]第一节:入门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')

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:52:05  更:2022-10-31 11:56:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 14:24:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码