簡體   English   中英

將URL參數傳遞給Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM