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。

更新于: 2021-08-26

887 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告