首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python瓶子如何将参数作为json传递

Python瓶子如何将参数作为json传递
EN

Stack Overflow用户
提问于 2013-06-11 19:39:28
回答 2查看 1.4K关注 0票数 0

我使用bottle为openerp创建了一个api

在使用浏览器进行访问时,它运行良好

我不知道如何将其作为json参数传递

问题是

如何使用api调用并传递json参数,如

代码语言:javascript
运行
复制
http://localhost/api?name=admin&password=admin&submit=Submit

这是我的wsgi代码app.wsgi

代码语言:javascript
运行
复制
import json
import os
import sys
import bottle
from bottle import get, post, run,request,error,route,template,validate,debug
def login():
        import xmlrpclib
        username = request.forms.get('name')
        pwd = request.forms.get('password')
        dbname = 'more'
        sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
        uid = sock_common.login(dbname, username, pwd)
        if uid:
                return json.dumps({'Success' : 'Login Sucessful'])

def index():
        return '''
        <html>
        <head>
                <title> Portal</title>
        </head>
        <body>Welcome To PORTAL
   <form method="GET" action="/api/links" enctype="multipart/form-data">
   Name:<input name="name" type="text"/><br>
   Password:<input name="password" type="password"/><br>
   <input type="submit" value="Submit" name="submit">
   </form>
   </body>
   </html>'''

def links():
        return '''
        <html>
        <head>
                <title> Portal</title>
        </head>
        <body>
    <a href="/api/advisor">Advisor<br>
   </body>
   </html>'''

application = bottle.default_app()
application.route('/', method="GET", callback=index)
application.route('/', method="POST",callback=login)
EN

回答 2

Stack Overflow用户

发布于 2013-06-11 20:43:19

request.forms用于POST或PUT请求。代码中的表单使用的是GET,而不是POST,因此您应该使用request.query.getall,它允许您访问"URL参数“。

票数 2
EN

Stack Overflow用户

发布于 2014-09-25 05:26:56

我没有看到任何错误的代码(除了pep8的变化),唯一的问题,我看到的是方法的形式和位置,请看下面的修复版本…

代码语言:javascript
运行
复制
import json
import os
import sys
import bottle
from bottle import get, post, run, validate, request, error, route, template, debug


def login():
    import xmlrpclib
    username = request.forms.get('name')
    pwd = request.forms.get('password')
    dbname = 'more'
    sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
    uid = sock_common.login(dbname, username, pwd)
    if uid:
        return json.dumps({'Success': 'Login Sucessful'})


def index():
        return '''
        <html>
        <head>
                <title> Portal</title>
        </head>
        <body>Welcome To PORTAL
   <form method="POST" action="/" enctype="multipart/form-data">
   Name:<input name="name" type="text"/><br>
   Password:<input name="password" type="password"/><br>
   <input type="submit" value="Submit" name="submit">
   </form>
   </body>
   </html>'''


def links():
        return '''
        <html>
        <head>
                <title> Portal</title>
        </head>
        <body>
    <a href="/api/advisor">Advisor<br>
   </body>
   </html>'''


application = bottle.default_app()
application.route('/', method="GET", callback=index)
application.route('/', method="POST", callback=login)

application.run()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17043170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档