react-smooth-dnd 拖拽实例(react-smooth-dnd 列表排序)
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/
测试
通过访问页面返回: 文章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.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("
编写总路由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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~