Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 瓶路径处理后,得到_Python_Post_Get_Wsgi_Bottle - Fatal编程技术网

Python 瓶路径处理后,得到

Python 瓶路径处理后,得到,python,post,get,wsgi,bottle,Python,Post,Get,Wsgi,Bottle,在我的webapp代码中,我一直有这样的结构: @app.route('some_method/<data>', method=['GET'], name='some_method') def view(id): data = base64.urlsafe_b64decode(data) ... @app.route('some_method', method=['POST'], name='some_method') def view(): data =

在我的webapp代码中,我一直有这样的结构:

@app.route('some_method/<data>', method=['GET'], name='some_method')
def view(id):
    data = base64.urlsafe_b64decode(data)

    ...

@app.route('some_method', method=['POST'], name='some_method')
def view():
    data = request.files.values()[0].file.read() if len(request.files) else request.body.read()

    ...
@app.route('some_method/',method=['GET'],name='some_method')
def视图(id):
data=base64.urlsafe\u b64解码(数据)
...
@app.route('some_method',method=['POST'],name='some_method')
def view():
data=request.files.values()[0]。如果len(request.files)else请求.body.read(),则为file.read()
...

其中,
是两个
视图
功能的相同代码。这不是很干。是否有任何既定的良好实践来有效地处理POST和GET-in-瓶子应用程序

想到的最简单的方法是将“…”放入它自己的方法/函数中,然后调用它

def process_stuff(data):
   . . .

@app.route('some_method/<data>', method=['GET'], name='some_method')
def view(id):
    data = base64.urlsafe_b64decode(data)
    process_stuff(data)

@app.route('some_method', method=['POST'], name='some_method')
def view():
    data = request.files.values()[0].file.read() if len(request.files) else request.body.read()
    process_stuff(data)
def过程(数据):
. . .
@app.route('some_method/',method=['GET'],name='some_method')
def视图(id):
data=base64.urlsafe\u b64解码(数据)
过程(数据)
@app.route('some_method',method=['POST'],name='some_method')
def view():
data=request.files.values()[0]。如果len(request.files)else请求.body.read(),则为file.read()
过程(数据)

我的方法是:

@app.route('some_method', method=['GET', 'POST'], name='some_method')
@app.route('some_method/<id>', method=['GET', 'POST'], name='some_method')
def view(id=None):
    if id and request.method == 'POST':
        data = base64.urlsafe_b64decode(data)
    elif request.method == 'GET':
        data = request.files.values()[0].file.read() if len(request.files) else request.body.read()
    else
        pass # handle this 404 error

    ...
@app.route('some\u method',method=['GET','POST'],name='some\u method')
@app.route('some_method/',method=['GET','POST'],name='some_method')
def视图(id=None):
如果id和request.method==“POST”:
data=base64.urlsafe\u b64解码(数据)
elif request.method==“GET”:
data=request.files.values()[0]。如果len(request.files)else请求.body.read(),则为file.read()
其他的
通过#处理这个404错误
...

为什么不为通用代码使用函数?