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。
广告