我是Django的新手。我有一个脚本,我计划制作一个Web APP。 我需要将一些值通过HTML表单操作方法传递到我的python脚本中。并且脚本输出显示在同一页面或不同页面中。 示例脚本:
a={{get-val1-from form}}
b={{get-val2-from-form}}
def add(a,b):
return (a+b)
我的HTML表单如下:
<form action="/">
<fieldset>
<legend>Input Requirements<br></legend>
<p>
<label>Value A:<br></label>
<input type="text" name="val1" value="">
</p>
<p>
<label>Value B:<br></label>
<input type="text" name="val2" value="">
</p>
<p>
<button id="Submit" > Analyze
</button>
</p>
<p>
<label>Result : <br></label>
<textarea id="out_string"> {{out_string}}
</textarea>
</fieldset>
</form>
我想通过Django实现它,请让我知道使用视图模板的方法。提前谢谢..
答案 0 :(得分:0)
定义您要从用户发送输入的路径。例子
from app_name import views
path('answer/', views.answer, name = "ans_url"),
然后在 app_name / views.py 中按如下方式定义视图
def answer (request):
if request.method == 'POST':
form = form_name (request.POST)
if form.is_valid():
a = form.cleaned_data['A']
b = form.cleaned_data['B']
ans = your_function(a, b)
return render (request, 'ans_template.html', {'ans' : ans})
else :
form = form_name()
return render (request, 'your_template.html', {'form' : form})
def your_function (a, b):
#Process
return (a+b)
然后在 your_template.html 中,您可以按以下方式定义表单
<form action="{% url 'ans_url' %}" method='POST'>
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Analyze">
</form>
如果您仍然感到困惑,最好一次阅读文档。这里解释得很漂亮。 https://docs.djangoproject.com/en/2.0/topics/forms/