1. 程式人生 > >flask使用url_open與redirect實現endpoint帶引數的跳轉

flask使用url_open與redirect實現endpoint帶引數的跳轉

Search部分

from flask_restful import Resource, reqparse
from flask import url_for, redirect

class SearchAPI(Resource):
    def __init__(self):
        self.parser = reqparse.RequestParser()
        self.parser.add_argument('q', type=str, help='query info', ignore=False)
        super(SearchAPI, self).__init__()

    def
get(self):
args = self.parser.parse_args() info = args.get('q') # 查詢的info為asset_id,所以通過url_for定下跳轉的url(endpoint為asset,所有對應引數為asset_id, page, tag) response = redirect(url_for('asset', asset_id=info, page=2, tag='balances')) print type(response) return response

Asset部分

from flask_restful import Resource, reqparse, abort
from manager import AssetManager

# 由url部分得知endpoint為'asset'
# (blockmeta.asset.api.AssetAPI, ('/api/asset/<string:asset_id>',), {'endpoint': 'asset'})
class AssetAPI(Resource):
    def __init__(self):
        self.manager = AssetManager()
        self.parser = reqparse.RequestParser()
        self.parser.add_argument('page'
, type=int, help='page number of txs/balances') self.parser.add_argument('tag', type=str, help='txs/balances') # 傳入引數有三個asset_id表現在url上,而page和tag表現在?以後 def get(self, asset_id): asset_id.strip().lower() args = self.parser.parse_args() page = args.get('page') tag = args.get('tag') page = 1 if page is None or not isinstance(page, int) or page <= 0 else page tag = 'txs' if tag is None or not isinstance(tag, str) or tag not in ['txs', 'balances'] else tag result = self.manager.handle_asset(asset_id, page, tag) if len(result) == 0: abort(404, message="asset not found") return result

url部分

# -*- coding: utf-8 -*-
from flask_restful import Api
import blockmeta.asset.api

# modules = [(handle, urls, args)]
# endpoint 為 'asset'
MODULES = [
    (blockmeta.asset.api.AssetAPI, ('/api/asset/<string:asset_id>',), {'endpoint': 'asset'}),
]

def register_api(app):
    api = Api(app)
    for handle, urls, args in MODULES:
        api.add_resource(handle, *urls, **args)

使用

http://127.0.0.1:5000/api/search?q=2bd71210029ae842f6a4ac905e73e69462572bbaecdb14e6bed40023459d4214

瀏覽器自動跳轉至

http://127.0.0.1:5000/api/asset/2bd71210029ae842f6a4ac905e73e69462572bbaecdb14e6bed40023459d4214?tag=balances&page=2

相關推薦

flask使用url_openredirect實現endpoint引數

Search部分 from flask_restful import Resource, reqparse from flask import url_for, redirect class SearchAPI(Resource): def __

IIS上設定301實現引數

  IIS上設定301 跳轉,只要在網站—屬性—主目錄裡 選擇重定向URL就行了,這樣整站就跳轉到目標站點了,但是有個問題,就是如果你的站是程式帶引數的,那麼就跳轉不了。   比如:xxx.com/?id=1 開啟這個頁面就跳轉不到 www.xxx.com/?id=1。那我

ThinkPHP3.2.3中URL引數

ThinkPHP框架針對前端頁面跳轉,給出了一種路由方法,通過{:U('模組/控制器/方法')}來跳轉到對應的頁面中,當這種方法在帶有引數並在JS中使用的時候這裡給出兩種方式,比如說,當控制器為inde

標籤引數並在下一個頁面接

<a href="home.html?id=1">跳轉</a> //home.html <script type="text/javascript"> var a=GetRequest(); c

JS 獲取href引數的值

//var i = 1; //var j = 2; //用法(1) local.href = "xxx.html?id=1" //用法(2) local.href = "xxx.html?id=" + i //用法(3) local.href = "xxx.html?id=" + i "&j

thinkphp5中引數

本文總結在thinkphp5中涉及到帶引數跳轉的方式和方法。 由於thinkphp5相較之前的3版本有修改,不再使用__URL__,所以這裡總結下幾種跳轉場景和方法: 一、表單提交 view層進行表單提交時,通過action指定提交方法和地址。

微信小程式引數到小遊戲

小遊戲的預設路徑是 pages/index/index wx.navigateToMiniProgram({ appId: 'wxef98a1fd370dd5ac', path:'pages/index/index?channcelCod

JavaScript引數頁面

<script type="text/javascript">         function keyTextBlur() {             document.getElementById("txtKey").value = "";             document.getEl

問號傳參,url引數

問號傳參: window.location.href = "./punch/clock_frm.html?modFlag="+modFlag+'&role='+role;   那麼我們在新頁面接收引數, 並且將引數轉為可用的json格式時, 可以用下面的方法: var

springmvc controller間重定向引數的解決方案

RedirectAttributes是spring mvc 3.1版本之後出來的一個功能,專門用於重定向之後還能帶引數跳轉的,                    這裡用它的addAttribute方法,這個實際上重定向過去以後你看url,是它自動給你拼了你的url。 他有兩種帶參的方式: 第一種: at

小程式頁面引數以及navigator

一、單純的頁面跳轉 跳轉到的頁面分 tabBar 頁面和 非tabBar 頁面。url路徑可以寫相對和絕對路徑。 1、跳轉到非導航頁面,用 wx.navigateTo 方法 wx.navigateTo({ url: '../person/goldcoin/inde

Atitit 單點登入實現幾種模式架構圖 目錄 1. 因此要點也就以下兩個:儲存信任驗證信任 1 1.1. 共享cookie (最簡單 1 1.2. 通過 urltoken引數 1 1.3.

Atitit 單點登入實現幾種模式架構圖   目錄 1. 因此要點也就以下兩個:儲存信任驗證信任 1 1.1. 共享cookie (最簡單 1 1.2. 通過 url帶token引數跳轉 1 1.3. 頁面重定向(複雜 1 1.3.1. 父子應用重定向 2

Vue+elementUI 自定義動態資料選單導航元件實現展開收縮+路由router-view渲染資料 路由到同一個頁面引數ID 自動重新整理資料

準備:匯入ElementUI 看官網教程 資料準備:JSON資料轉換成樹狀 參考文章: JS實現 JSON扁平資料轉換樹狀資料 後臺我拿的資料是這樣的格式: [ {id:1 , parentId: 0, name: '', level: 0}, {id:2 , parentId: 0, name: '',

JSPServlet之後臺頁面單條刪除多條刪除的頁面實現

.get func rac web nbsp pre resp har 做的 單條刪除頁面跳轉 1、首先打開JSP頁面,找到刪除 2、這個時候要把它改成servlet的URL,並決定要傳給後臺什麽數據,例如我需要傳一個待刪數據的ID id並不是什麽見不得

小程序之

cti number ava nbsp 正常 ber style num activiti 正常跳轉 wx.navigateTo({  url: ‘../myactivities/myactivities }) 如果你跳轉後的頁面需要phonenumber / nic

Slog69_實現一個引數的雲函式GET!(微信小程式之雲開發-全棧時代2)

ArthurSlog SLog-69 Year·1 Guangzhou·China Sep 11th 2018 禍兮福之所倚 福兮禍之所伏 開發環境MacOS(High Sierra 10.13.5) 需要的資訊和資訊源: 前言 騰訊推出“雲開發”概

混合APP中實現合成引數二維碼的圖片並分享到微信

專案中遇到個需求,要把帶個人蔘數的二維碼的分享圖分享到微信,讓兩個使用者繫結。 這是分享之前的樣式,要用canvas把它做成一整張圖片,如果不是APP中是在微信會H5中可以進入頁面就製作,覆蓋在原圖上讓使用者長按圖片下載。 分享之前使用者可以自由搭配分享樣式,這是分享在微信中的樣子。

Tomcat實現專案名稱訪問,實現方式:自動到指定頁面,不改變URL

tomcat實現不帶專案名稱訪問專案 當通過瀏覽器訪問tomcat時,如果只有ip+埠而沒有專案名稱,則訪問的是webapps/ROOT/index.html, 修改Tomcat的webapps/ROOT/index.html自動跳轉到指定url即可 自動跳轉到指定

iOS 9 適用,使用Button實現簡單的檢視返回上一級。(初級)

搭建平臺;Xcode 7.1— iOS 9 一、新建兩個檢視,並通過 Button實現跳轉 並在第一個檢視上放一個Button控制元件。滑鼠點選Button控制元件,按住Ctrntrol鍵不放,出現藍色小圓點。直接把藍色小圓點拖動到第二個檢視,其間有

iOS 從一個APP到另一個APP,並引數到指定頁面

功能實現:A跳到B並開啟B中指定頁面 步驟: 1.首先建立兩個專案(專案A,專案B),在專案B中的info.plist檔案中新增URL Types,如下圖所示:其中URL idenifier是專案B的bundle id ,URL Schemes 中新增一個命令字首