在django里以继承的方式将一首古诗显示在一个网页?

如题所述

第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)
```

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网