如何将HTML与Django集成?
我有一个HTML文件,里面有一个网页设计,包含一个表单,用户可以在里面输入他们的名字。我想为每次提交创建一个六个条目的数组(以后可以在另一个页面填充信息)。
请问Django是不是合适的工具呢?我希望把HTML设计文件和处理的Python后台代码分开成两个文件。如果是这样,有没有人能推荐一个好的地方,让我了解如何把HTML和处理HTML提交表单的Python代码结合起来?
3 个回答
1
Django 提供了一种模板系统,这个系统把展示文件和业务逻辑分开,整个结构非常灵活。模板语言很简单,但功能强大,主要是对现有文本文件进行替换。你可以在 HTML(完整或部分)、文本、XML、JSON 或几乎任何其他基于文本的格式中使用 Django 模板。
Django 还允许你连接到其他模板系统,不过我对这个怎么运作了解不多。
想了解更多信息,可以查看 Django 模板文档。
9
Django 可能对这个需求来说有点过于复杂。如果你只是想把一个表单和一些后台的 Python 代码连接起来,像 Flask 这样的微框架可能会更合适。
下面是如何用 Flask 创建一个简单表单的方法:
首先,创建一个名为 project
的文件夹,然后在里面再创建一个名为 templates
的文件夹。
你的模板很简单:
{% if name %}
Hello {{ name }}
{% endif %}
<form method="POST">
<input type="text" name="name" value="Enter your name">
<input type="submit">
</form>
把这个内容保存为 index.html
,放在刚才创建的 templates
文件夹里。
接着,在 project
文件夹里创建一个叫 go.py
的文件,然后把下面的内容复制粘贴到里面:
from flask import Flask
from flask import render_template
from flask import request
app = Flask(__name__)
@app.route('/',methods=['POST','GET'])
def process_form():
if request.method == 'POST':
form_input = request.form['name']
return render_template('index.html',name=form_input)
else:
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
最后,在 project
文件夹里,输入:
python go.py
然后打开你的浏览器,访问 http://localhost:5000/