[英]Pass URL parameters to Python
我的模板之一中包含以下代碼。
<html>
<body>
<script>
var val1 = 10;
var val2 = 20;
</script>
<a href="/generate/">Generate</a>
</body>
</html>
我希望在views.py文件的generate
函數中使用值val1和val2。 就像這樣。
def generate(request):
# do something with val1 and val2
我不知道如何將這些值傳遞給函數。 最佳做法是什么,我應該嘗試通過URL參數檢索信息嗎? 或者,也許我應該刪除Javascript,然后直接在generate()
函數中使用Python做所有事情?
謝謝您的幫助!
您需要應用HTTP方法,例如GET或POST。
在視圖模板中使用以下代碼(示例index.html
):
<html>
<body>
<form method="post" action="/generate">
{% csrf_token %}
<input type="number" name="val1" value="10">
<input type="number" name="val2" value="20">
<input type="submit" value="generate">
</form>
</body>
</html>
並在views.py
使用此代碼:
def index(request):
return render_to_response('index.html', RequestContext(request))
def generate(request):
val1 = request.POST.get('val1', 0)
val2 = request.POST.get('val2', 0)
sum = val1 + val2
return HttpResponse(str(sum))
該鏈接對您有所幫助: https : //docs.djangoproject.com/en/dev/topics/forms/
使用GET傳遞參數:
<html>
<body>
<a href="/generate/?val1=10&val2=20">Generate</a>
</body>
</html>
現在,您可以使用request屬性在視圖中訪問它們:
def generate(request):
if request.method == 'GET':
val1 = request.GET.get('val1')
val2 = request.GET.get('val2')
#futher code
https://docs.djangoproject.com/en/dev/ref/request-response/#
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.