首页 > 其他分享 >flask-study-004

flask-study-004

时间:2024-01-16 17:11:54浏览次数:25  
标签:__ name flask study request Flask 004 password app

本篇博客记录学习和实践flask的request全局对象的属性和方法

参考学习:https://zhuanlan.zhihu.com/p/623755314

1. request的属性

属性名 解释 示例
form 从post或者put请求解析的multidict(一键多值字典)
args multidict,要操作的url中提交的参数,可以使用args属性。 ?key=value。search = request.args.get('key')
values combinemultidict,内容是forms和args
cookie 请求的cookie,类型是dict
stream
headers 请求头,字典类型
data 请求数据
files
environ
method 请求的方法。 比如post,get
path 请求路径

2. request的常用属性和方法

2.1 request.method

from flask import Flask, request

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/', methods=['GET', 'POST'])
def index():
    r_method = request.method
    return f"hello,{r_method}"

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

终端执行:curl -H "Content-Type: application/json" -X GET http://127.0.0.1:5000/,结果显示:hello,GET

终端执行:curl -H "Content-Type: application/json" -X POST http://127.0.0.1:5000/,结果显示:hello,POST

2.2 request.args

from flask import Flask, request

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/', methods=['GET', 'POST'])
def index():
    word = request.args.get('name', 'liwl')
    return f"hello,{word}"

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

执行:curl -H "Content-Type: application/json" -X GET http://127.0.0.1:5000/?name=liwanliang,得到结果:hello,liwaniang

执行:curl -H "Content-Type: application/json" -X GET http://127.0.0.1:5000/,得到结果:hello,liwl

2.3 request.form

from flask import Flask, request

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/', methods=['POST'])
def index():
    username = request.form.get('username')
    password = request.form.get('password')
    return f"hello,{username}.your password is {password}"

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

执行:curl -H "Content-Type: multipart/form-data" -X POST --form 'username=liwl' --form 'password=liwanliang' http://127.0.0.1:5000/

得到结果:hello,liwl.your password is liwanliang

2.4 request.cookies

2.5 request.headers

from flask import Flask, request

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/', methods=['POST', 'GET'])
def index():
    user_agent = request.headers.get('User-Agent')
    return f'your user agent is {user_agent}'

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

终端执行:curl -X POST http://127.0.0.1:5000,结果显示:your user agent is curl/7.64.0

浏览器访问:http://127.0.0.1:5000 结果显示:

your user agent is Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0

2.6 request.get_json()

from flask import Flask, request

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/', methods=['POST'])
def index():
    data = request.get_json()
    username = data.get('username')
    password = data.get('password')
    return f"username: {username}, password: {password}" 

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

终端执行:curl -H "Content-Type: application/json" -X POST -d '{"username":"liwl","password":"liwanliang"}' http://127.0.0.1:5000/

结果显示:username: liwl, password: liwanliang

2.6 request.data

2.7 request.files

from flask import Flask, request

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/', methods=['POST'])
def index():
    file = request.files['file']
    file.save("/tmp/"+file.filename)
    return 'success'

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

终端执行:curl -F "[email protected]" http://127.0.0.1:5000/,返回success

查看:ls -lrt /tmp/liwl.txt

标签:__,name,flask,study,request,Flask,004,password,app
From: https://www.cnblogs.com/liwanliangblog/p/17968103

相关文章

  • flask-study-003
    本篇博客记录flask使用的jinja2模板使用方法1.模板的基本使用app.py如下:fromflaskimportFlask,render_template,redirectapp=Flask(__name__)app.config['DEBUG'][email protected]('/')defindex():name="liwl"returnrender_template(&......
  • flask-study-002
    本篇主要记录flask的模板使用1.模板基本使用通过render_template函数进行模板的渲染在app.py同级目录下,创建templates目录,用于存放需要flask渲染的模板fromflaskimportFlask,render_templateapp=Flask(__name__)app.config['DEBUG'][email protected]('/')def......
  • flask-study-001
    本篇博客主要记录python3.6使用flask开发代码托管:https://gitee.com/liwl1991/my-flask1.pip3配置国内源终端执行:pip3configsetglobal.index-urlhttps://mirrors.aliyun.com/pypi/simple查看:pip3configlist2.安装flask环境终端执行:pip3installflask3.创建app.......
  • flask学习002
    本篇学习实践flask的模板渲染导入render_template模板在app.py同级目录下,创建templates目录,创建user.html<h1>hello,{{name}}我是模板内容</h1>目录结构:.├──app.py└──templates└──user.htmlapp.py代码修改如下:fromflaskimportFlask,render......
  • flask学习001
    1.pip3配置国内源(阿里云)pip3configsetglobal.index-urlhttps://mirrors.aliyun.com/pypi/simple查看:pip3configlist2.安装flask环境pip3installflask3.创建app.pyfromflaskimportFlaskapp=Flask(__name__)@app.route('/')defindex():return"......
  • 梦回2004!我用全志V3s做了个成本100元,功能媲美MP4的随身终端
    本项目是基于全志V3S的随身终端(类似MP4),命名为V3S-PI,开发板使用四层板制作,全板采用0603电容电阻,相较于0402,制作更为方便,同时成本可压缩至100以内。项目简介开发板选用全志V3S为主控,V3s单核Cortex-A7带有硬件浮点计算,且芯片内封64MbyteDDR2,无需再外接DDR2芯片,极大程度上为开发板的走......
  • flask session 伪造
    flasksession伪造一、session的作用由于http协议是一个无状态的协议,也就是说同一个用户第一次请求和第二次请求是完全没有关系的,但是现在的网站基本上有登录使用的功能,这就要求必须实现有状态,而session机制实现的就是这个功能。用户第一次请求后,将产生的状态信息保存在sessio......
  • flask介绍
    1.flask介绍Flask诞生于2010年,是Arminronacher用python语言基于Werkzeug工具箱编写的轻量级web开发框架Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用Flask......
  • Python Flask Class类默认方法(函数)
    前言全局说明Class类默认方法(函数)一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、Class类默认方法(函数)默认方法(函数)说明备注init类被调用后,自动执行......
  • Python Flask 模块安装、引用模块、启动Web服务方法
    前言全局说明模块安装、引用模块、启动服务一、安装flask模块官方源:pip3installflask==2.3.2国内源:pip3installflask==2.3.2-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com以上二选一,哪个安装快用哪个flask安装时间2023-11更多国内源:......