私は簡単なUIを準備しようとしています。送信ボタンをクリックするとドロップダウンからroboid
を選択するユーザーは、残りのAPI URLを使用してロボットの詳細を取得する必要があります。 roboid
をハードコードすると結果が表示されます。しかし、ここでの疑問は、ドロップダウンから値をURLに渡す方法です。そして、そのウィンドウを同じウィンドウで表形式で表示する方法。ここで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)
名.html クラスA:
< !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',)
私が知っていますもっとたくさんあるoコード内で修正する。 しかし、私を助けてください、それは私にとって重要なものです。
テンプレートの書式を修正することはできません。 –
そして、 JSONを解析するのになぜ 'literal_eval''を使用していますか? –
これも申し訳ありません....私はコードを再入力する方法はわかりません。質問を投稿したのは初めてです。 – Smily