Так что это мой код.
from flask import Flask, request
from flask_restful import Resource, Api
app = Flask(__name__)
app.config['DEBUG'] = True
api = Api(app)
# Make the WSGI interface available at the top level so wfastcgi can get it.
wsgi_app = app.wsgi_app
class Default(Resource):
def get(self, name):
"""Renders a sample page."""
return "Hello " + name
class LiveStats(Resource):
def get(self, url):
return "Trying to get " + url
# data = request.get(url)
# return data
api.add_resource(Default, '/default/<string:name>') # Route_1
api.add_resource(LiveStats, '/liveStats/<path:url>') # Route_2
if __name__ == '__main__':
import os
HOST = os.environ.get('SERVER_HOST', 'localhost')
try:
PORT = int(os.environ.get('SERVER_PORT', '5555'))
except ValueError:
PORT = 5555
app.run(HOST, PORT)
Теперь, во-первых, этот пост очень помог. how-to-pass-urls-as-параметры-in-a-get-request-inside- python - flask -restplus
Изменение того, что у меня изначально было.
api.add_resource(LiveStats, '/liveStats/<string:url>') # Route_2
к этому
api.add_resource(LiveStats, '/liveStats/<path:url>') # Route_2
избавился от 404 ошибок, которые у меня были, но теперь я замечаю, что он не передает все URL.
Пример, если я попробуйте это
localhost:60933/liveStats/http://address/Statistics?NoLogo=1%26KSLive=1
Я получил это
Trying to get http://address/Statistics
, поэтому он взлетел ?NoLogo=1%26KSLive=1
Как Вы предотвращаете это?