欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

django表單提交數據庫mysql

江奕云2年前11瀏覽0評論

在Django中,我們使用表單來收集用戶輸入的數據,并將這些數據存儲到數據庫中。本文將介紹如何使用Django框架通過表單提交數據到MySQL數據庫。

首先,我們需要創建一個數據庫模型來定義我們要存儲的數據。在Django中,模型是一個Python類,它用來描述數據的結構和屬性。

from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=200)
publication_date = models.DateField()

在上面的代碼中,我們定義了一個名為“Book”的模型,它有三個屬性:title、author和publication_date。它們都是字符型,其中publication_date是一個日期型。

接著,我們需要創建一個表單類,它將用來收集用戶的輸入數據。在Django中,表單類是一個Python類,它定義了表單的字段和驗證規則。

from django import forms
class BookForm(forms.Form):
title = forms.CharField(label='Title', max_length=200)
author = forms.CharField(label='Author', max_length=200)
publication_date = forms.DateField(label='Publication Date')

在上面的代碼中,我們定義了一個名為“BookForm”的表單類,它有三個字段:title、author和publication_date。它們都是字符型,其中publication_date是一個日期型。在這里我們使用了Django中的表單組件來定義表單字段及其標簽。

接下來,我們需要定義一個視圖函數,它將處理表單提交請求并將數據存儲到數據庫中。在Django中,視圖函數是一個Python函數,它處理來自瀏覽器的請求,并返回一個響應。

from django.shortcuts import render
from .models import Book
from .forms import BookForm
def add_book(request):
if request.method == 'POST':
form = BookForm(request.POST)
if form.is_valid():
book = Book(title=form.cleaned_data['title'],
author=form.cleaned_data['author'],
publication_date=form.cleaned_data['publication_date'])
book.save()
return render(request, 'success.html')
else:
form = BookForm()
return render(request, 'add_book.html', {'form': form})

在上面的代碼中,我們定義了一個名為“add_book”的視圖函數,它接受一個請求對象作為輸入。如果請求方法是POST,則我們將從請求體中獲取表單數據,并將其賦給一個新的Book實例。然后我們將該實例存儲到數據庫中,并返回一個渲染的HTML頁面。如果請求方法不是POST,則我們將返回一個未渲染的HTML頁面,其中包含一個空的表單。

最后,我們需要定義兩個HTML模板。一個模板用于呈現表單,另一個模板用于呈現提交成功的頁面。在Django中,模板是一個HTML文件,它包含了動態生成的內容。

add_book.html模板:

<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>

在上面的代碼中,我們將Django的{% csrf_token %}標簽用于保護表單免受CSRF攻擊。然后我們使用{{ form.as_p }}標簽呈現表單。

success.html模板:

<h1>Submission Successful!</h1>

在上面的代碼中,我們只需要呈現一個簡單的成功信息。

到此為止,我們已經完成了通過Django表單提交數據到MySQL數據庫的所有步驟。使用上述代碼和模板,您可以輕松創建并部署一個包含表單提交功能的Web應用程序。