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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.