一个简单的增删改查Django demo,快速学习框架
构建一个简单的Django项目,其中包括基本的增删改查(CRUD)功能,是一个很好的学习框架的开始。下面是一个快速指南,帮助你创建一个简单的Django应用程序。
环境准备
安装Python和Django
确保你已经安装了Python,然后通过以下命令安装Django:pip install django
创建Django项目
django-admin startproject myproject
cd myproject
创建应用程序
python manage.py startapp myapp
配置Django项目
添加应用到项目中
在myproject/settings.py
中,找到INSTALLED_APPS
并添加myapp
:INSTALLED_APPS = [
...,
'myapp',
]
设置数据库(默认SQLite)
创建模型
在myapp/models.py
中定义一个简单的模型,例如一个书籍管理系统:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
published_date = models.DateField()
isbn_number = models.CharField(max_length=13)
def __str__(self):
return self.title
迁移数据库
生成和应用迁移以创建数据库表:
python manage.py makemigrations myapp
python manage.py migrate
创建视图
在myapp/views.py
中,为增删改查功能编写视图:
from django.shortcuts import render, get_object_or_404, redirect
from .models import Book
from .forms import BookForm
# 显示书籍列表
def book_list(request):
books = Book.objects.all()
return render(request, 'myapp/book_list.html', {'books': books})
# 详情页面
def book_detail(request, pk):
book = get_object_or_404(Book, pk=pk)
return render(request, 'myapp/book_detail.html', {'book': book})
# 创建书籍
def book_create(request):
if request.method == "POST":
form = BookForm(request.POST)
if form.is_valid():
form.save()
return redirect('book_list')
else:
form = BookForm()
return render(request, 'myapp/book_form.html', {'form': form})
# 更新书籍
def book_update(request, pk):
book = get_object_or_404(Book, pk=pk)
if request.method == "POST":
form = BookForm(request.POST, instance=book)
if form.is_valid():
form.save()
return redirect('book_list')
else:
form = BookForm(instance=book)
return render(request, 'myapp/book_form.html', {'form': form})
# 删除书籍
def book_delete(request, pk):
book = get_object_or_404(Book, pk=pk)
if request.method == "POST":
book.delete()
return redirect('book_list')
return render(request, 'myapp/book_confirm_delete.html', {'book': book})
创建表单
在myapp/forms.py
中:
from django import forms
from .models import Book
class BookForm(forms.ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'published_date', 'isbn_number']
配置URL
在myapp/urls.py
中:
from django.urls import path
from . import views
urlpatterns = [
path('', views.book_list, name='book_list'),
path('book/<int:pk>/', views.book_detail, name='book_detail'),
path('book/new/', views.book_create, name='book_create'),
path('book/<int:pk>/edit/', views.book_update, name='book_update'),
path('book/<int:pk>/delete/', views.book_delete, name='book_delete'),
]
在myproject/urls.py
中包含myapp的url:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
]
创建模板
在myapp/templates/myapp/
目录下创建以下HTML文件:
book_list.html
:用于显示书籍列表。book_detail.html
:用于显示书籍详情。book_form.html
:用于创建和更新书籍表单。book_confirm_delete.html
:用于删除确认页面。
运行开发服务器
启动本地开发服务器并访问应用程序:
python manage.py runserver
访问http://127.0.0.1:8000/即可看到你的Django增删改查应用。
这个项目可以帮助你快速了解Django的一些基本概念,比如模型、视图、表单和模板等。随着你对Django的熟悉,可以逐步加入更多复杂的功能。