如题所述
第1个回答 2023-04-03
1. 创建一个基础模板base.html,包含网页的头部和底部,以及一个content块用于子模板填充内容。
```html
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<header>
<h1>古诗欣赏</h1>
<nav>
<a href="#">首页</a>
<a href="#">分类</a>
<a href="#">关于</a>
</nav>
</header>
<main>
{% block content %}
{% endblock %}
</main>
<footer>
<p>版权所有 © 2021</p>
</footer>
</body>
</html>
```
2. 创建一个子模板poem.html,继承自base.html,并填充content块。
```html
{% extends 'base.html' %}
{% block title %}{{ poem.title }}{% endblock %}
{% block content %}
<article>
<h2>{{ poem.title }}</h2>
<p>{{ poem.content }}</p>
<p>作者:{{ poem.author }}</p>
<p>朝代:{{ poem.dynasty }}</p>
</article>
{% endblock %}
```
3. 在views.py中定义一个视图函数,读取古诗数据并渲染poem.html模板。
```python
from django.shortcuts import render
from .models import Poem
def poem_detail(request, poem_id):
poem = Poem.objects.get(id=poem_id)
return render(request, 'poem.html', {'poem': poem})
```
4. 在urls.py中配置该视图函数的路由。
```python
from django.urls import path
from . import views
urlpatterns = [
path('poem/<int:poem_id>/', views.poem_detail, name='poem_detail'),
]
```
5. 在models.py中定义古诗数据模型。
```python
from django.db import models
class Poem(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
author = models.CharField(max_length=50)
dynasty = models.CharField(max_length=20)
def __str__(self):
return self.title
```
6. 在admin.py中注册古诗数据模型,以便在后台管理中添加和编辑古诗数据。
```python
from django.contrib import admin
from .models import Poem
admin.site.register(Poem)
```
```html
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<header>
<h1>古诗欣赏</h1>
<nav>
<a href="#">首页</a>
<a href="#">分类</a>
<a href="#">关于</a>
</nav>
</header>
<main>
{% block content %}
{% endblock %}
</main>
<footer>
<p>版权所有 © 2021</p>
</footer>
</body>
</html>
```
2. 创建一个子模板poem.html,继承自base.html,并填充content块。
```html
{% extends 'base.html' %}
{% block title %}{{ poem.title }}{% endblock %}
{% block content %}
<article>
<h2>{{ poem.title }}</h2>
<p>{{ poem.content }}</p>
<p>作者:{{ poem.author }}</p>
<p>朝代:{{ poem.dynasty }}</p>
</article>
{% endblock %}
```
3. 在views.py中定义一个视图函数,读取古诗数据并渲染poem.html模板。
```python
from django.shortcuts import render
from .models import Poem
def poem_detail(request, poem_id):
poem = Poem.objects.get(id=poem_id)
return render(request, 'poem.html', {'poem': poem})
```
4. 在urls.py中配置该视图函数的路由。
```python
from django.urls import path
from . import views
urlpatterns = [
path('poem/<int:poem_id>/', views.poem_detail, name='poem_detail'),
]
```
5. 在models.py中定义古诗数据模型。
```python
from django.db import models
class Poem(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
author = models.CharField(max_length=50)
dynasty = models.CharField(max_length=20)
def __str__(self):
return self.title
```
6. 在admin.py中注册古诗数据模型,以便在后台管理中添加和编辑古诗数据。
```python
from django.contrib import admin
from .models import Poem
admin.site.register(Poem)
```