zoukankan      html  css  js  c++  java
  • flask之request

     1 from flask import Flask, render_template, redirect, jsonify, send_file, request, session
     2 
     3 app = Flask(__name__)
     4 
     5 
     6 @app.route('/request/', methods=['GET', 'POST'])
     7 def home():
     8     print(request.method)   # 请求方式
     9     print(request.url)      # 请求完整路径(ip+port+路径+参数)http://192.168.16.14:8888/?id=1&name=yang
    10     print(request.path)     # 请求路径/
    11 
    12     print(request.args)     # url请求查询参数
    13     print(request.form)     # Formdata表单数据(可以采用GET方式)
    14     print(dict(request.form))
    15     print(request.form.to_dict())#MultiDict字典转化成常见的pyhton格式字典
    16     print(request.files)    # 文件上传(不能用GET方式上传文件,同时在form中添加属性enctype="multipart/form-data")
    17   print(request.values)  #获取url中get和post中的formdata数据
    18     print(request.json)     # 如果在请求中写入了 "application/json" 使用 request.json 则返回json解析数据, 否则返回 None(request.data中也有)
    19     print(request.data)     # 不属于form/formData或mimetype(http://www.w3school.com.cn/media/media_mimeref.asp)的描述,request就会将无法处理的参数转为Json存入到 data 中
    20 
    21     # print(request.cookies)        # 请求携带的cookie
    22     # print(request.environ)        # 请求原数据信息
    23     # print(request.headers)        # 请求头信息
    24     # print(request.full_path)      # 请求路径带参数 /?id=1&name=yang
    25     # print(request.values)         # 请求数据,包含GET的args和POST的formdata(不推荐使用)
    26     # print(request.host)           # 当前服务主机端口信息  192.168.16.14:8888
    27     # print(request.host_url)       # 请求主机信息 http://192.168.16.14:8888/
    28     # print(request)
    29     # print(request.query_string)  # bytes类型url请求查询参数
    30     # print(request.base_url)  # 请求路径(ip+port+路径,不带参数)http://192.168.16.14:8888/
    31 
    32     if request.method == 'GET':
    33         return render_template('login.html')
    34 
    35     elif request.method == 'POST':
    36         print(request.files.get('myfile').filename)  # POST方式上传的文件数据
    37         filename = request.files.get('myfile').filename  # POST方式上传的文件名
    38         if filename:
    39             request.files.get('myfile').save()  # POST方式上传的文件保存
    40         return '200 ok'
    41 
    42 
    43 if __name__ == '__main__':
    44     app.run('0.0.0.0', 8888, debug=True)

    templates模板文件中的页面login.html

      

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>login</title>
     6 </head>
     7 <body>
     8 <form action="" method="post" enctype="multipart/form-data">
     9     用户名:<input type="text" name="username">
    10     密码:<input type="password" name="pwd">
    11     文件:<input type="file" name="myfile">
    12     <input type="submit" value="提交">
    13 </form>
    14 </body>
    15 </html>
  • 相关阅读:
    Redission源码
    RocketMQ 的heartBeat在做哪些事情
    Netty调用channel.close方法和 客户端所在Java进程正常/异常关闭的细节
    RocketMQ源码之 事务消息的回调方法应该怎么写?
    spring 源码
    多线程同步工具ReentrantLock CountDownLatch CyclicBarrier Semaphore join
    RocketMQ 的事务消息
    RocketMQ 怎样解决为了 实时拉取消息 而不得不一直轮询的问题
    .net winform 调用类中的webbrowser 报错:当前线程不在单线程单元中,因此无法实例化 ActiveX
    [转]如何不格式化、不丢失数据修复内存卡
  • 原文地址:https://www.cnblogs.com/open-yang/p/11169980.html
Copyright © 2011-2022 走看看