Django使用模板显示内容

网友投稿 305 2022-08-23


Django使用模板显示内容

Django使用模板显示内容

当数据模型建立完成时,接下来需要将模型里的数据展示出来,而且是通过模板这种类型进行显示

查看文章页面

如何通过一个处理方法获取文章唯一标识通过查看article/migrations/0001_initial.py可得出,表格中有"id","title","content"通过编辑article/views.py编写处理方法

from django.import HttpResponse # 引用 HttpResponse 方法def article_detail(request,article_id): # 创建文章明细处理方法 return HttpResponse("文章id: %s" % article_id)

通过编辑mysite/urls.py总路由,编写路由配置

from article.views import article_detail # 引用article APP中的views试图中的article_detial方法名 path("article/", article_detail, name="article_detail"),

测试

通过访问页面返回: 文章id: 1通过访问页面返回: 文章id: 2

应用模型

模型的objects是获取或操作模型的对象

Article.objects.get(条件)Article.objects.all()Article.objects.filter(条件)

如何在articleAPP中的views.py引用articleAPP下的models.py中的模型数据,参考如下:

article/views.pyfrom .models import Articledef article_detail(request, article_id): article = Article.objects.get(id=article_id) return HttpResponse("文章的标题", article.title) # 获取模型数据中的数据

程序测试

通过访问页面返回: 文章的标题: one通过访问页面返回: 文章的标题: two通过访问页面返回: DoesNotExist 异常

异常情况异常处理通过编写article/views.py

from .models import Articledef article_detail(request, article_id): try: article = Article.objects.get(id=article_id) except Article.DoesNotExist: return HttpResponse("不存在") # 返回不存在 return HttpResponse("文章的标题", article.title) # 获取模型数据中的数据

或者

通过编写article/views.py

from .models import Articlefrom django.import Http404 # 引用 Http404 方法def article_detail(request, article_id): try: article = Article.objects.get(id=article_id) except Article.DoesNotExist: raise Http404("not exist") # 通过引用Http404方法抛出异常提示 return HttpResponse("文章的标题", article.title) # 获取模型数据中的数据

引用模板文件

在articleAPP中创建模板文件夹"templates"mkdir article/templates在templates文件夹中创建模板文件"article_detial.html",这里先不编写内容通过编写articleAPP中的views.py文件,引用模板文件

from django.shortcuts import renderfrom django.import Http404 # 引用 Http404 方法from .models import Articledef article_detail(request,article_id): # 创建文章明细处理方法 try: article = Article.objects.get(id=article_id) context = {} # 定义字典 context['article_obj'] = article # article_obj 在html中引用 return render(request, "article_detail.html", context) # except Article.DoesNotExist: # return HttpResponse("不存在") # 返回不存在 raise Http404("not exist") # 通过引用Http404方法抛出异常提示

返回进行编写article_detial.html模板文件

{{article_obj.title}}


{{article_obj.content}}

测试访问

通过访问页面返回:

优化404方法

from django.shortcuts import render, get_object_or_404from .models import Article# Create your views here.def article_detail(request,article_id): # 创建文章明细处理方法 article = get_object_or_404(Article, pk=article_id) context = {} # 定义字典 context['article_obj'] = article return render(request, "article_detail.html", context)

测试结果

通过访问页面返回:

获取文章列表

为什么要获取文章列表通过编写articleAPP中的views.py文件

from django.shortcuts import render_to_response # 引用 render_to_response 方法def article_list(request): article = Article.objects.all() context = {} context['articles'] = articles return render_to_response("article_list.html", context)

在templates文件夹中创建article_list.html

{{ articles }}

编写urls.py总路由文件

from article.views import article_list # 引用article_listpath('article/', article_list, name="article_list") # 增加

测试

通过访问​​页面返回:

通过for循环 继续编写article_list.html

{% for article in articles %} {{ article.title }} {% endfor%}

测试

通过访问​​页面返回:

获取文章列表处理成功

总urls包含app的urls

逻辑图如下​​在articleAPP中创建urls.py​​,并编辑如下

from django.urls import pathfrom . import viewsurlpatterns = [ # localhost:8000/article/ path('' , views.article_list , name="article_list") , # localhost:8000/article/1 path("" , views.article_detail , name="article_detail") ,]

编写总路由mysite/urls.py

from django.contrib import adminfrom django.urls import pathfrom . import viewsfrom django.urls import include # 使用include库urlpatterns = [ path('admin/', admin.site.urls), path("", views.index), path("article/", include("article.urls")) # 引用APP中的urls路由]

测试

测试正常


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于SpringBoot整合Canal数据同步的问题
下一篇:Django基本应用结构(django的特点)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~