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