2017-03-17 37 views
0

我正在製作一個Django網絡應用程序,我想從HTML文本框中獲取用戶輸入並通過python腳本運行它。當我從命令行輸入文本時,該腳本起作用,但我希望能夠使Web應用程序打印文本在通過腳本時發生的情況。Django幫助:如何從文本框中獲取文本數據並通過python腳本?

我已經做了一個Django的網絡應用程序,並且當服務器運行一個簡單的文本框和一個提交按鈕的基本HTML頁面(它是一種形式)。

我寫了一個單獨的python腳本,它將從用戶輸入(從命令行)並運行通過腳本輸入的文本。

我將如何能夠從HTML頁面中的表單數據替換函數中的input()?

什麼,我想要做的一個例子:

<form action=""> 
text: <input type="text" name="handle" value=""><br> 
<input type="submit" value="Submit"> 
</form> 

以上是一個簡單的形式提交按鈕。當按下「提交」按鈕,我想這些數據去一個腳本:

import statements 

def blah(): 
screenname = input('Enter your name here: ') 
output = screenname.functionA 
print(output) 

除輸入()被替換爲HTML文件中的表單數據。

我在哪裏將python腳本存儲在Django應用程序中?

如何將文本從表單傳遞到python腳本?

任何幫助表示讚賞,我試圖在同一時間:)

回答

2

讓我們開始的形式來開發我的網頁設計能力的一個步驟。你需要的是形式張貼到Django視圖:

<form method="POST" action=""> 
    <inputs here ...> 
</form> 

,你渲染頁面,您將需要檢查請求的方法,如果它是一個POST請求視圖中,然後將它傳遞給功能。

def view_name(request): 
    if request.method == "POST": 
    screenname = request.POST.get("handle", None) # handle is the name of the input in the question. 
    # Here you can do anything with your screenname, like passing it to the function. 
    return render(request, 'path/to/form.html', {}) 

現在將您的自定義腳本放入django。一種方法是在您的應用程序中添加utils.py腳本,並在以前的代碼中調用utils.blah(sreenname)。而不是print你可以返回結果並顯示它:

from app_name.utils import blah 
def view_name(request): 
    if request.method == "POST": 
    screenname = request.POST.get("handle", None) 
    result = blah(screenname) 
    return render(request, 'path/to/result.html', {'result': result} 
    return render(request, 'path/to/form.html', {}) 
+0

關於最後一點代碼:是所有在Django視圖? –

+0

是的。認爲模型視圖控制器邏輯,django是模型模板視圖類型的框架,這是工作查看 –

+0

urls.py看起來像上面的例子? –

相關問題