我正在尝试创建一个与数据库交互的简单django应用程序。但是我在网址中传递了多个参数时遇到了麻烦。
要传递参数,我这样做:
127.0.0.1:8000/REST/insert/?n=test/?x=2/?y=2/?z=True
然后在我的 views.py 中,我得到参数:
name = request.GET.get('n', '')
x = request.GET.get('x', '')
y = request.GET.get('y', '')
z = request.GET.get('z', '')
显然,我做错了。我该如何解决?
答案 0 :(得分:2)
查询参数之间的分隔符应为&
个字符,而不是斜杠和问号(第一个除外)。
/?n=test/?x=2/?y=2/?z=True
应该是
/?n=test&x=2&y=2&z=True
注意:我不确定你应该在这里使用查询参数,因为你的网址中有“插入”。如果你真的想把东西插入数据库,那么至少应该通过post post请求作为post数据。
答案 1 :(得分:1)
你想做的事情并不安全。由于您执行了插入操作,因此请求类型应为POST,您应该将信息发送为json。
只需将数据写为json并将其放入请求的正文中。
在您看来;
import json
def your_view(request):
body_unicode = request.body.decode('utf-8')
data = json.loads(body_unicode) # This is a dictionary.
答案 2 :(得分:0)
首先必须编辑你的urls.py文件以接受你发送的参数, 它应该是,
url(r'^REST/insert/$', views.YourFuntion, name = 'your-fn'),
第二次用这样的//
替换qustion标记和斜杠&
,
http://127.0.0.1:8000/REST/insert/?n=test&x=2&y=2&z=True