我想準備一個簡單的用戶界面。在點擊提交按鈕時,用戶將從下拉菜單中選擇roboid
,他應該使用其他API URL獲取機器人詳細信息。如果我硬編碼roboid
我得到的結果。但我的疑問是如何將值從下拉列表傳遞到URL。以及如何在同一窗口中以表格形式顯示該json。如何將值從下拉列表傳遞到django中的URL
這裏是我的代碼:
Views.py
from django.shortcuts import render
from django.http import HttpResponseRedirect
import ast
from django.http import HttpResponse
import requests
from .form import NameForm
def get_name(request):
# if this is a POST request we need to process the form data
title = 'welcome'
k = {}
form = NameForm(request.POST or None)
context = {
"form": form, "title": title, "roboid": 2}
if form.is_valid():
robotid = request.POST.get('roboid', '')
print robotid
resp = requests.get('https://r0p1i0hwdh.execute-api.us-west-2.amazonaws.com/testhp/?roboid=%s' % robotid)
l = ast.literal_eval(resp.content)
di = ast.literal_eval("".join(map(str, l)))
for k, v in di.iteritems():
items = "{:<25} {:<50}".format(k, v)
context = {
"robotid": robotid}
return render(request, "name.html", context)
name.html 類:
< !DOCTYPE html >
< html
<head>
</head >
< body bgcolor = "#f5f5dc" >
<center>
<h1 > {{title}} </h1 >
< form
method = "get"
action = "" >
{ % csrf_token %}
{{form.as_p}}
<script>
var
z = "https://bvdruneuqc.execute-api.us-west-2.amazonaws.com/test/my-resource1?roboid=5"
</script >
< input
type = "submit"
value = "Submit"
style = "float: none "
onclick = "window.open(z)"/>
< input
type = "RESET"
value = "cancel" >
{{items}}
</form ></center >
</body ></html >
form.py
from django import forms
class NameForm(forms.Form):
roboid = forms.ChoiceField(label='RobotID',choices=[(x, x) for x in range(1, 10)],required='TRUE',)
我知道有更多t o在代碼中修改。 但是,請幫助我們,這對我來說很重要。
請修復您的模板的格式,這是不可讀的。 –
而且,呃。你爲什麼用'literal_eval''解析JSON? –
對不起,還....我不知道如何再次添加代碼。這是我第一次發佈關於該文字eval的問題 – Smily