django写查询页面html,简单的博客系统(四)Django请求HTML页面视图信息--基于函数的视图...

1. 编写用于查询数据的功能函数

应用目录 下的 views.py 文件通常用于保存响应各种请求的函数或类

from django.shortcuts import render

from .models import BlogArticles

# Create your views here.

def blog_title(request): # request 负责响应所接收到的请求

# 查询得到所有 BlogArticles 表中的所有实例数据

blogs = BlogArticles.objects.all()

"""

render() 作用是将数据渲染到指定模板上

"blog/titles.html" 指定渲染到哪个页面,页面路径为应用目录下的templates目录

{"blogs": blogs} 为传给页面的数据

"""

return render(request, "blog/titles.html", {"blogs": blogs})

2. 在应用目录下创建相关html页面文件

文件目录结构如下:

7032633cfe9825cb63d4f64a29a93585.png

编写相关页面代码

{% block title %}{% endblock %}

{% block content %}

{% endblock %}

{% extends "base.html" %}

{% block title %}

博客标题

{% endblock %}

{% block content %}

我的博客

{% for blog in blogs %}

{{ blog.title }}

{% endfor %}

{% endblock %}

3. 配置URL

编写 项目目录 下的 urls.py 文件

from django.contrib import admin

from django.urls import path, include

urlpatterns = [

path('admin/', admin.site.urls),

path("blog/", include('blog.urls')), # 通过这里将blog/请求转向blog应用的urls.py,即./blog/urls.py文件

]

编写 应用目录 下的 urls.py 文件

from django.urls import path

from . import views

"""

第一个参数为空,表示访问根,因为该文件在blog应用中,则要为blog/

views.blog_title 表示响应该请求的函数

"""

urlpatterns = [

path('', views.blog_title),

]

启动项目访问:http://127.0.0.1:8000/blog/ 即可看到结果

4. 给url传参数

修改 titles.html 文件给文章标题添加链接

{% for blog in blogs %}

{{ blog.title }}

{% endfor %}

为该请求编写对应的函数(./blog/views.py)

def blog_article(request, article_id): # 该请求传入 article_id 参数

article = BlogArticles.objects.get(id=article_id)

pub = article.publish

return render(request, "blog/content.html",{"article":article, "publish":pub})

编写显示文件内容的html页面(templates/blog/content.html)

{% extends "base.html" %}

{% block title %}

博客标题

{% endblock %}

{% block content %}

{{ article.title }}

{{ article.author.username }}

{{ publish }}

{{ article.body }}

{% endblock %}

增加请求所对应的url(./blog/urls.py)

urlpatterns = [

path('', views.blog_title),

path('/', views.blog_article),

]

URL配置和查询

当用户通过浏览器请求某个URL时,Django会根据请求路径依次在URLConf中查询,并将第一个符合条件的映射关系作为查询结果。

例如,访问 http://localhost:8000/blog/1,其请求过程如下:

localhost:8000:主域名部分,不进行查询

/blog/:首先在 项目目录/urls.py 中查询,遇到符合条件的URL映射(path('blog/', include('blog.urls')),),根据此映射中的描述,到 blog.urls(./blog/urls.py) 中查询

/1:在 ./blog/urls.py 中有URL(path('/', views.blog_article))配置,请求路径正好符合,从而确定最终访问的视图函数 views.blog_article

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值