我正在创建一个Django Web应用程序,我想从HTML文本框中获取用户输入并通过python脚本运行它。当我从命令行输入文本时,脚本可以正常工作,但我希望能够让Web应用程序打印文本在通过脚本时发生的事情。
我已经制作了一个Django网络应用程序,当服务器运行时,会出现一个带有简单文本框和提交按钮的基本HTML页面(它是一个表单)。
我编写了一个单独的python脚本,它将接受用户输入(从命令行)并运行通过脚本输入的文本。
我如何能够使用HTML页面中的表单数据替换函数中的input()?
我想做的一个例子:
<form action="">
text: <input type="text" name="handle" value=""><br>
<input type="submit" value="Submit">
</form>
上面是一个带提交按钮的简单表单。当提交&#39;按下按钮,我希望该数据转到脚本:
import statements
def blah():
screenname = input('Enter your name here: ')
output = screenname.functionA
print(output)
除了输入()替换为HTML文件中的表单数据。
我在哪里将python脚本存储在Django应用程序中?
如何将表单中的文本传递给python脚本?
感谢任何帮助,我试图一步一步地开发我的网页设计能力:)
答案 0 :(得分: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中。一种方法是在app中添加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', {})
答案 1 :(得分:0)
$app-color-eggplant: #232028;
$app-color-dust: #ABAAAF;
$app-color-off: #9B8BC6;
$app-color-shadow: #1A0438;
//Primary Colors
$color-primary : #472A93;
$color-primary-darkest : #212028;
$color-primary-light : #A596CC;
//Secondary Colors
$color-secondary : #FF6601;
$color-secondary-light : #FFC19A;
//Informational Colors
$color-error : #DB4432;
//Text Colors
$color-text : #232028;
$color-text-muted : #797979;
$color-text-light : #D2D2D2;
//Background Colors
$color-background : #cfd8dc;
$color-background-dark : #b0bec5;
$color-background-darker : #90A4AE;
$color-background-light : #EDEFF1;
$color-background-table : #c6c6c6;
$color-background-table-lighter : #c6c6c636;