使用DJango实现动漫信息管理要求动漫信息包括标题为charfield类型,图片为ImageField,时间为datefiled 要求实现增删改功能要html代码和models代码以及url和form等全部代码
时间: 2024-03-17 10:46:02 浏览: 105
Django的Web的增删查改
4星 · 用户满意度95%
好的,以下是实现动漫信息管理的代码:
首先是 models.py:
```python
from django.db import models
class Anime(models.Model):
title = models.CharField(max_length=100)
image = models.ImageField(upload_to='images/')
date = models.DateField()
def __str__(self):
return self.title
```
此处定义了一个 Anime 模型,包含了标题、图片和时间三个属性。
接下来是 forms.py:
```python
from django import forms
from .models import Anime
class AnimeForm(forms.ModelForm):
class Meta:
model = Anime
fields = ['title', 'image', 'date']
```
这里使用了 Django 的 ModelForm,方便我们快速创建一个表单。
然后是 urls.py:
```python
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('add/', views.add_anime, name='add_anime'),
path('edit/<int:anime_id>/', views.edit_anime, name='edit_anime'),
path('delete/<int:anime_id>/', views.delete_anime, name='delete_anime'),
]
```
定义了四个路由,分别对应着首页、添加动漫、编辑动漫和删除动漫。
接下来是 views.py:
```python
from django.shortcuts import render, get_object_or_404, redirect
from .models import Anime
from .forms import AnimeForm
def index(request):
anime_list = Anime.objects.all()
return render(request, 'anime/index.html', {'anime_list': anime_list})
def add_anime(request):
if request.method == 'POST':
form = AnimeForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('index')
else:
form = AnimeForm()
return render(request, 'anime/add_anime.html', {'form': form})
def edit_anime(request, anime_id):
anime = get_object_or_404(Anime, pk=anime_id)
if request.method == 'POST':
form = AnimeForm(request.POST, request.FILES, instance=anime)
if form.is_valid():
form.save()
return redirect('index')
else:
form = AnimeForm(instance=anime)
return render(request, 'anime/edit_anime.html', {'form': form, 'anime': anime})
def delete_anime(request, anime_id):
anime = get_object_or_404(Anime, pk=anime_id)
anime.delete()
return redirect('index')
```
这里定义了四个视图函数,分别对应着渲染首页、添加动漫、编辑动漫和删除动漫。
最后是 HTML 模板代码:
index.html:
```html
{% extends 'base.html' %}
{% block content %}
<h1>动漫信息管理</h1>
<a href="{% url 'add_anime' %}">添加动漫</a>
<ul>
{% for anime in anime_list %}
<li>
<h2>{{ anime.title }}</h2>
<img src="{{ anime.image.url }}" width="200">
<p>{{ anime.date }}</p>
<a href="{% url 'edit_anime' anime.id %}">编辑</a>
<a href="{% url 'delete_anime' anime.id %}">删除</a>
</li>
{% endfor %}
</ul>
{% endblock %}
```
add_anime.html:
```html
{% extends 'base.html' %}
{% block content %}
<h1>添加动漫</h1>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">提交</button>
</form>
{% endblock %}
```
edit_anime.html:
```html
{% extends 'base.html' %}
{% block content %}
<h1>编辑动漫</h1>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">提交</button>
</form>
<a href="{% url 'delete_anime' anime.id %}">删除</a>
{% endblock %}
```
以上就是使用 Django 实现动漫信息管理的全部代码。
阅读全文