在Django中,如何實(shí)現(xiàn)一個(gè)模型類的增刪改查操作? django 增刪改查
Avito.ru優(yōu)選族跨境問答2025-05-237300
在Django中,模型類是用于表示數(shù)據(jù)庫表的類。要實(shí)現(xiàn)一個(gè)模型類的增刪改查操作,首先需要定義一個(gè)模型類,然后使用Django的ORM(對(duì)象關(guān)系映射)功能來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。以下是一個(gè)簡單的示例:
- 創(chuàng)建一個(gè)名為
Person
的模型類,表示一個(gè)人的信息:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
address = models.TextField()
def __str__(self):
return self.name
- 然后,在視圖中處理與
Person
模型相關(guān)的操作:
from django.shortcuts import render, get_object_or_404
from .models import Person
def person_list(request):
persons = Person.objects.all()
return render(request, 'person_list.html', {'persons': persons})
def person_detail(request, pk):
person = get_object_or_404(Person, pk=pk)
return render(request, 'person_detail.html', {'person': person})
def person_create(request):
if request.method == 'POST':
person = Person(name=request.POST['name'], age=request.POST['age'], address=request.POST['address'])
person.save()
return redirect('person_list')
def person_update(request, pk):
person = get_object_or_404(Person, pk=pk)
if request.method == 'POST':
person.name = request.POST['name']
person.age = request.POST['age']
person.address = request.POST['address']
person.save()
return redirect('person_list')
def person_delete(request, pk):
person = get_object_or_404(Person, pk=pk)
person.delete()
return redirect('person_list')
- 最后,在模板中使用這些視圖來顯示和更新數(shù)據(jù):
<!-- person_list.html -->
{% for person in persons %}
<h2>{{ person.name }}</h2>
<p>{{ person.age }}歲</p>
<p>{{ person.address }}</p>
{% endfor %}
<!-- person_detail.html -->
{% if person %}
<h2>{{ person.name }}</h2>
<p>{{ person.age }}歲</p>
<p>{{ person.address }}</p>
{% else %}
<p>這個(gè)人不存在。</p>
{% endif %}
<!-- person_create.html -->
<form method="post">
<label for="name">姓名:</label>
<input type="text" name="name" required>
<label for="age">年齡:</label>
<input type="number" name="age" required>
<label for="address">地址:</label>
<textarea name="address" rows="4" cols="50"></textarea>
<button type="submit">創(chuàng)建</button>
</form>
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。