1. 程式人生 > >03.Flask Request物件

03.Flask Request物件

獲取訪問的url和訪問方式

from flask import request
#....
with app.test_request_context('/login',method='POST'):
    print(request.path) #獲取訪問url /login                                 
    print(request.method) #獲取訪問訪問方式 POST

獲取請求引數

with app.test_request_context('/login?a=10&b=20',method='GET'):
    print(request.args['a'
]) #獲取引數a 如果沒有傳遞a會產生KeyError print(request.args['b']) #獲取引數b 如果沒有傳遞a會產生KeyError print(request.args.get('a',30))#獲取引數a 如果沒有傳遞a會返回預設值30,這樣的方式更加友好 ''' with app.test_request_context('/login?a=10&b=20',method='GET'): print(dir(request)) request其他引數: ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_get_file_stream', '_get_stream_for_parsing', '_is_old_module', '_load_form_data', '_parse_content_type', 'accept_charsets', 'accept_encodings', 'accept_languages', 'accept_mimetypes', 'access_route', 'application', 'args', 'authorization', 'base_url', 'blueprint', 'cache_control', 'charset', 'close', 'content_encoding', 'content_length', 'content_md5', 'content_type', 'cookies', 'data', 'date', 'dict_storage_class', 'disable_data_descriptor', 'encoding_errors', 'endpoint', 'environ', 'files', 'form', 'form_data_parser_class', 'from_values', 'full_path', 'get_data', 'get_json', 'headers', 'host', 'host_url', 'if_match', 'if_modified_since', 'if_none_match', 'if_range', 'if_unmodified_since', 'input_stream', 'is_json', 'is_multiprocess', 'is_multithread', 'is_run_once', 'is_secure', 'is_xhr', 'json', 'list_storage_class', 'make_form_data_parser', 'max_content_length', 'max_form_memory_size', 'max_forwards', 'method', 'mimetype', 'mimetype_params', 'module', 'on_json_loading_failed', 'parameter_storage_class', 'path', 'pragma', 'query_string', 'range', 'referrer', 'remote_addr', 'remote_user', 'routing_exception', 'scheme', 'script_root', 'shallow', 'stream', 'trusted_hosts', 'url', 'url_charset', 'url_root', 'url_rule', 'user_agent', 'values', 'view_args', 'want_form_data_parsed'] '''
#如果是POST或者PUT請求引數可以通過 request.form來獲取,#不一定是form表單提交的資料,post的KEY-VALUE都可以通過form獲取

檔案上傳可以通過

f = request.files['the_file']
f.save('/var/www/uploads/uploaded_file.txt')

cookies獲取

username = request.cookies.get('username')

如果想設定cookie需要注意
from flask import make_response

@app.route('/')
def index(): resp = make_response(render_template(...))#構建響應物件,cookie需要設定到響應物件上 resp.set_cookie('username', 'the username')#設定cookie return resp#返回響應

其他引數大家可以通過dir(request)來檢視屬性,大家逐一實驗一下,或者在以後的博文中獲取詳細資訊