如何将HTML与Django集成?

2 投票
3 回答
26838 浏览
提问于 2025-04-17 09:06

我有一个HTML文件,里面有一个网页设计,包含一个表单,用户可以在里面输入他们的名字。我想为每次提交创建一个六个条目的数组(以后可以在另一个页面填充信息)。

请问Django是不是合适的工具呢?我希望把HTML设计文件和处理的Python后台代码分开成两个文件。如果是这样,有没有人能推荐一个好的地方,让我了解如何把HTML和处理HTML提交表单的Python代码结合起来?

3 个回答

1

Django 提供了一种模板系统,这个系统把展示文件和业务逻辑分开,整个结构非常灵活。模板语言很简单,但功能强大,主要是对现有文本文件进行替换。你可以在 HTML(完整或部分)、文本、XML、JSON 或几乎任何其他基于文本的格式中使用 Django 模板。

Django 还允许你连接到其他模板系统,不过我对这个怎么运作了解不多。

想了解更多信息,可以查看 Django 模板文档

2

你可以在Django中创建HTML表单,不过你可能需要把这个表单转换成模板

如果这是你第一次使用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/

撰写回答