Django搭建个人博客----文章详情页面

文章详情页面

有了首页的文章展示,那么怎么可以看到文章的内容呢,也就是所谓的查看详情。

配置路由地址

article/urls.pypath('article_detail/<int:id>', views.article_detail, name='article_detail')

编写视图函数(Views)

article/views.py

def article_detail(request, id):
    article = Article.objects.get(id=id)
    context = {
        'article': article
    }
    return render(request, 'article_datail.html', context)

与之前的函数不同的是,多了一个id,即多了一个主键,在model中不声明主键时,Django会对每个表自动生成一个主键,也就是id。

Modelname.objects.get(id=id)为在Modelname中取出id值为传递参数的对象,即一篇文章。 这里需要很大的优化,我们以后再说。

Templates编写

   article_detail.html
   <div class="row">
        <!-- 标题及作者 -->
        <h2 class="col-12 mt-4 mb-4">{{ article.art_title }}</h2>
        <div class="col-12 alert alert-success">
            Author:{{ article.author }} &emsp;&emsp; Datetime:{{ article.created_time }}
        </div>
        <!-- 文章正文 -->
        <div class="col-12">
            <p>{{ article.art_body }}</p>
        </div>
    </div>

页面之间进行连接

前端页面优化

 {% for article in all_article %}
        <div class="row ">
            <a href="{% url 'article:article_detail' article.id %}" class="text-muted">
                <h5>{{ article.art_title }}</h5>
            </a>
        </div>
        <div class="row">
            <p>
                {{ article.created_time }}
            </p>
        </div>
    {% endfor %}

href后的代码也可以更换为熟悉的/article/article_datail/{{article.id}},不过我上面的代码是我提倡的,就是前面所讲的nammspace+name.

这样优化后,点击首页的文章标题,就进入到了文章的详情页面。

这样,一个及其简单的博客的正删改查基本就实现了,再多多优化优化代码吧。前面所说的代码还有很大的优化空间呦!

加油,你是最棒的。




上一篇: Django搭建个人博客----Template:展现层
下一篇: Django搭建个人博客----登录和登出