Django – 无需模型、查询和 HTML 创建联系表单并存储其数据
在 Django 中,您可以非常轻松地创建联系表单,但它需要管理很多事情,例如创建表单、视图、模型,然后在 Admin 中注册模型等。在本文中,我们将了解如何为我们的联系表单使用预定义的包,该包将数据保存到预定义的模型中。
我们将创建一个联系表单,该表单将数据存储在模型中,而无需在 **models.py** 或 **views.py** 中编写任何代码,也不需要编写任何 **html**。因此,让我们开始吧。
示例
首先,创建一个 Django 项目和一个应用程序。
安装 **django-contactforms** 包:
pip install django-contactforms
然后,在 settings.py 中,添加以下行:
INSTALLED_APPS+=["contactforms"]
在 INSTALLED_APPS 中添加此模块和您的应用程序名称。
在项目的 **urls.py** 中:
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('contactforms.urls')),
path("aftercontact", include('MyForm.urls'))
]创建两个 URL 端点,一个用于联系表单,另一个用于提交后重定向。
在应用程序的 **urls.py** 中:
from django.urls import path,include
from . import views
urlpatterns = [
path('',views.home,name="home"),
]在这里,我们渲染了将在填写联系表单后显示的 html。
在 **views.py** 中:
from django.shortcuts import render # Create your views here. def home(request): return render(request,"home.html")
在这里我们渲染了我们的 html。
现在,在应用程序目录中创建一个文件夹,并将其命名为 **“templates”**。在其中添加一个文件夹,并将其命名为 **“contact”**,并在其中添加一个 html 文件,并将其命名为 **contact.html**。在 **contact.html** 中添加以下行:
<!DOCTYPE html>
<html>
<body>
<div class="row">
<form action="{% url 'contact' %}" method="post">
<h3>Send a Message</h3>
{% csrf_token %}
<div class="form-group">
{% if messages %}
{% for message in messages %}
<span{% if message.tags %} class="{{ message.tags } }"{% endif %} style="color: green">
{{ message }}
</span>
{% endfor %}
{% endif %}
</div>
<div class="form-group">
{{ forms.name }}
</div>
<div class="form-group">
{{ forms.email }}
</div>
<div class="form-group">
{{ forms.subject }}
</div>
<div class="form-group">
{{ forms.message }}
</div>
<button class="btn btnprimary" type="submit">Submit</button>
</form>
</div>
</body>
</html>这是将在“/”端点上显示的表单。我们只是从我们的包中加载了表单。
现在回到 **templates** 文件夹并添加 **home.html**(不在 contact 文件夹内)并添加以下行:
<!DOCTYPE html> <html> <head><title>tut</title></head> <body> <h3>Successfull</h3> </body> </html>
输出
这是提交联系表单后渲染的 html。

广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP