<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      在Flask中構建API接口的相關概念

      在Flask中構建API接口的相關概念

      重定向行為

      斜杠

      以下兩個路由的不同之處在于是否使用尾部的斜杠。

      第一個路由的URL尾部有一個斜杠,看起來就像一個文件夾,訪問一個沒有斜杠結尾的URL時,Flask會自動進行重定向,在結尾加上一個斜杠。

      第二個路由的URL沒有尾部斜杠,因此其行為表現與一個文件類似,如果訪問這個URL時添加了尾部斜杠就會得到一個404錯誤,這樣可以保持URL唯一,并幫助搜索引擎避免重復索引同一頁面。

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

      redirect

      from flask import Flask, redirect
      
      @app.route('/baidu')
      def baidu():
          return redirect('https://www.baidu.com')
      

      Flask HTTP方法

      1 GET 請求指定的頁面信息,并返回實體主體。
      2 POST 向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。
      3 PUT 從客戶端向服務器傳送的數據取代指定的文檔的內容。
      4 DELETE 請求服務器刪除指定的頁面。
      @app.route('/login', methods=['GET', 'POST'])
      def login():
          if request.method == 'POST':
              return do_the_login()
          else:
              return show_the_login_form()
      

      登錄登出案例

      # 登錄
      @app.route("/login", methods=['POST'])
      def login():
          """
          username: 123456
          password: 123456
          :return:
          """
          get_data = request.get_json()
          username = get_data.get("username")
          password = get_data.get("password")
      
          if not all([username, password]):
              return jsonify(msg="參數不完整")
      
          if username == '123456' and password == '123456':
              # 如果驗證通過,保存登錄狀態在session中
              session['username'] = username
              return jsonify(msg='登錄成功')
          else:
              return jsonify(msg='賬號或密碼錯誤')
      
      # 檢查登錄狀態
      @app.route("/session", methods=["GET"])
      def check_session():
          username = session.get("username")
          if username is not None:
              return jsonify(username=username)
          else:
              return jsonify(msg="出錯了,沒登錄")
      
      # 登出
      @app.route('/logout', methods=['GET'])
      def logout():
          session.clear()
          return jsonify(msg='成功退出登錄')
      

      要訪問cookie,可以使用cookie屬性,通過使用響應對象的set_cookie方法來設置cookie。請求對象的cookie屬性是一個包含了客戶端傳輸的所有cookie的字典。在Flask中,如果使用session,就不要直接使用cookie,因為session比較安全一些。

      Session

      session 是基于cookie實現, 保存在服務端的鍵值對(形式為 {隨機字符串:‘xxxxxx’}), 同時在瀏覽器中的cookie中也對應一相同的隨機字符串,用來再次請求的 時候驗證。

      一、配置SECRET_KEY

      因為flask的session是通過加密之后放到了cookie中,所以需要配置“SECRET_KEY”。

      配置方法

      新建一個config.py的文件配置secret_key

      config.py

      SECRET_KEY = 'XXXXXXXXX'
      

      然后在主運行文件里面添加config文件里面的內容。

      from flask import Flask,session
      import config
      app = Flask(__name__)
      app.config['SECRET_KEY'] = config.SECRET_KEY  # 寫法一
      app.secret_key = config.SECRET_KEY  # 寫法二
      

      二、操作session

      操作session的方法就如同操作字典。

      設置session

      # 設置session
      @app.route('/')
      def set():
           session['name'] = 'lili' # 設置“字典”鍵值對
           return 'success'
      

      讀取session

      因為session就像字典一樣所以,操作它的時候有兩種方法:

      • (1)result = session[‘key’] :如果內容不存在,將會報異常。
      • (2)result = session.get(‘key’) :如果內容不存在,將返回None(推薦用法)。
      # 讀取session
      @app.route('/get')
      def get():
          session['name']  # 寫法一
          session.get('name')  # 寫法二
          return 'success'
      

      刪除session

      # 刪除session
      @app.route('/delete/')
      def delete():
          session.pop('name',None)  # 寫法一
          session['name'] = False  # 寫法二
          return 'success'
      

      清除session中所有數據

      # 清除session中所有數據
      @app.route('/clear')
      def clear():
          session.clear()
          return 'success'
      

      三、設置session的過期時間

      若沒有指定session的過期時間,那么默認是瀏覽器關閉后就自動結束。session.permanent = True語句在flask下則可以將有效期延長至一個月。

      方法一

       # 設置session
       @app.route('/')
       def set():
           session['name'] = 'lili'
           session.permanent = True # 長期有效,一個月的時間有效
           return 'success'
      

      方法二

      • 1.引入包:from datetime import timedelta
      • 2.配置有效期限:app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效
      • 3.設置:session.permanent = True
      #encoding: utf-8
      from flask import Flask,session
      from datetime import timedelta
      import os 
      app = Flask(__name__)
      app.config['SECRET_KEY'] = os.urandom(24)
      app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效 
      
      # 設置session
      @app.route('/')
      def set():
          session['username'] = 'liefyuan'
          session.permanent = True
          return 'success'
      

      Postman

      在構建API接口時,可以使用Postman工具來進行接口測試。

      Postman界面導航

      01.png

      posted @ 2023-02-10 23:27  大雄的叮當貓  閱讀(219)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品久久久久影院亚瑟| 久久午夜色播影院| 亚洲三区在线观看内射后入| 久久久久亚洲av成人网址| 国产a在视频线精品视频下载| 年日韩激情国产自偷亚洲| 青青青青国产免费线在线观看| 国产一卡2卡三卡4卡免费网站| 亚洲精品中文字幕码专区| 性夜夜春夜夜爽夜夜免费视频| 精品人人妻人人澡人人爽人人| 国产成人精品午夜2022| 国产熟女50岁一区二区| 777奇米四色成人影视色区| 中国女人熟毛茸茸A毛片| 精品素人AV无码不卡在线观看| 亚洲国产日韩A在线亚洲| 精品国产一区二区三区性色| 日本人妻巨大乳挤奶水免费| 久久se精品一区精品二区国产| av鲁丝一区鲁丝二区鲁丝三区| 国产中文字幕一区二区| 最新的国产成人精品2020| 无码囯产精品一区二区免费| 成全高清在线播放电视剧| 国产精品无遮挡又爽又黄| 一区二区中文字幕av| 桦川县| 国产免费午夜福利在线播放| 亚洲高清国产拍精品熟女| 亚洲人成人伊人成综合网无码| 99久久er热在这里只有精品99| 艳妇臀荡乳欲伦交换h在线观看| 日本亚洲一区二区精品久久| 国产最新进精品视频| 中文有无人妻vs无码人妻激烈| 澄迈县| 无码中文字幕av免费放| 东方四虎av在线观看| 吉首市| 极品美女自拍偷精品视频|