当前位置: 首页 > news >正文

云南省住房与城乡建设厅网站太原网站建设费用

云南省住房与城乡建设厅网站,太原网站建设费用,外贸网站测速,ru域名注册视图 视图 - 是具体的业务代码 在 app 下的 views.py 文件中编写代码 from django.http import HttpResponsedef index(request):return HttpResponse(这里是我的站点)为了调用该视图#xff0c;我们还需要编写urlconf#xff0c;也就是路由配置。在polls目录中…视图 视图 - 是具体的业务代码 在 app 下的 views.py 文件中编写代码 from django.http import HttpResponsedef index(request):return HttpResponse(这里是我的站点)为了调用该视图我们还需要编写urlconf也就是路由配置。在polls目录中新建一个文件名字为urls.py不要换成别的名字在其中输入代码如下: from django.urls import path from . import views urlpatterns [path(, views.index, nameindex), ]接下来在项目的主urls.py文件中添加urlpattern条目指向我们刚才建立的polls这个app独有的urls.py文件这里需要导入include模块。打开mysite/urls.py文件代码如下 from django.contrib import admin from django.urls import include, pathurlpatterns [path(polls/, include(polls.urls)),path(admin/, admin.site.urls), ]include语法相当于多级路由它把接收到的url地址去除与此项匹配的部分将剩下的字符串传递给下一级路由 urlconf 进行判断。     include的背后是一种即插即用的思想。项目的根路由不关心具体app的路由策略只管往指定的二级路由转发实现了应用解耦。app所属的二级路由可以根据自己的需要随意编写不会和其它的app路由发生冲突。app目录可以放置在任何位置而不用修改路由。这是软件设计里很常见的一种模式。     建议除了admin路由外尽量给每个app设计自己独立的二级路由。 路由设置成功后启动服务器然后在浏览器中访问地址 http://localhost:8000/polls/。 模板 Django 中的视图的概念是一类具有相同功能和模板的网页的集合。一个视图通常对应一个页面提供特定的功能使用特定的模板。     在Django中网页和其它的一些内容都是通过视图来处理的。视图其实就是一个简单的Python函数在基于类的视图中称为方法。Django通过对比请求的URL地址来选择对应的视图也就是路由。     为了将 URL 和视图关联起来Django 使用 URLconfs来配置路由。 urlpatterns [path(, views.index, nameindex),path(int:question_id/, views.detail, namedetail),path(int:question_id/results/, views.results, nameresults),path(int:question_id/vote/, views.vote, namevote),]“int:question_id/”, 这里面不能包含空格     项目settings.py文件中的 TEMPLATES配置项描述了 Django 如何载入和渲染模板。默认的设置文件设置了 DjangoTemplates 后端作为模板引擎并将 APP_DIRS设置成了 True。这一选项将会让 DjangoTemplates 在每个 INSTALLED_APPS 文件夹中寻找 “templates” 子目录。     在templates目录下建立一个与app同名的子目录将该app所属的模板都放到里面从而达到独立命名空间的作用不会出现引用错误。   返回模板的两种方法 from django.http import HttpResponse from django.template import loader from .models import Questiondef index(request):latest_question_list Question.objects.order_by(-pub_date)[:5]template loader.get_template(polls/index.html)context {latest_question_list: latest_question_list,}return HttpResponse(template.render(context, request))from django.shortcuts import render from .models import Questiondef index(request):latest_question_list Question.objects.order_by(-pub_date)[:5]context {latest_question_list: latest_question_list}return render(request, polls/index.html, context)注意此处不再需要导入 loader而是从django.shortcuts导入了render。     render()函数的第一个位置参数是请求对象就是view函数的第一个参数这个参数是固定写法不需要变动。第二个位置参数是模板文件。还可以有一个可选的第三参数一个字典包含需要传递给模板的数据。最后render函数返回一个经过字典数据渲染过的模板封装而成的HttpResponse对象。 返回404错误的两种方法 def detail(request, question_id):try:question Question.objects.get(pkquestion_id)except Question.DoesNotExist:raise Http404(Question does not exist)return render(request, polls/detail.html, {question: question.question_text})from django.shortcuts import get_object_or_404, render from .models import Questiondef detail(request, question_id):question get_object_or_404(Question, pkquestion_id)return render(request, polls/detail.html, {question: question})get_object_or_404()方法将一个Django模型作为第一个位置参数后面可以跟上任意数量的关键字参数如果对象不存在则弹出Http404错误。 同样还有一个get_list_or_404()方法和上面的get_object_or_404()类似只不过是用来替代filter()函数当查询列表为空时弹出404错误。filter是模型API中用来过滤查询结果的函数它的结果是一个列表集。而get则是查询一个结果的方法和filter是一个和多个的区别 为什么我们使用辅助函数get_object_or_404()而不是自己捕获ObjectDoesNotExist异常呢还有为什么模型 API 不直接抛出ObjectDoesNotExist而是抛出 Http404呢因为这样做会增加模型层和视图层的耦合性。指导 Django 设计的最重要的思想之一就是要保证松散耦合。一些受控的耦合将会被包含在django.shortcuts模块中。 在 {% for %}循环中的方法调用——question.choice_set.all其实就是Python的代码question.choice_set.all(),它将返回一组可迭代的Choice对象并用在{% for %}标签中。 删除模板中硬编码的URLs 此处的 app 名以 polls 为例   在 templates/polls/index.html文件中还有一部分硬编码存在也就是href里的“/polls/”部分   它对于代码修改非常不利。设想如果你在urls.py文件里修改了路由表达式那么你所有的模板中对这个url的引用都需要修改这是无法接受的 我们给urls定义了一个name别名可以用它来解决这个问题。具体代码如下 lia href{% url detail question.id %}{{ question.question_text }}/a/liDjango会在polls.urls文件中查找namedetail’的路由具体的就是下面这行 path(int:question_id/, views.detail, namedetail),举个栗子如果你想将polls的detail视图的URL更换为polls/specifics/12/那么你不需要在模板中重新修改url地址了仅仅只需要在polls/urls.py文件中将对应的正则表达式改成下面这样的就行了所有模板中对它的引用都会自动修改成新的链接 # 添加新的单词specifics path(specifics/int:question_id/, views.detail, namedetail),URL names的命名空间 可以在polls/urls.py文件的开头部分添加一个app_name的变量来指定该应用的命名空间 from django.urls import path from . import viewsapp_name polls # 重点是这一行urlpatterns [path(, views.index, nameindex),path(int:question_id/, views.detail, namedetail),path(int:question_id/results/, views.results, nameresults),path(int:question_id/vote/, views.vote, namevote), ]现在让我们将代码修改得更严谨一点将templates/polls/index.html中的 lia href{% url detail question.id %}{{ question.question_text }}/a /li修改为: lia href{% url polls:detail question.id %}{{ question.question_text }}/a/li
http://www.zqtcl.cn/news/517837/

相关文章:

  • 连云港网站设计城乡建设网站 资料员
  • 网络优化工程师有多累seo前线
  • 囊谦县公司网站建设新沂网页定制
  • 公众平台网页版wordpress换主题影响seo吗
  • 网站建设什么是静态网页设置wordpress文章标题高亮的代码
  • 男女做那事是什 网站wordpress怎么上传ppt
  • 电商网站图片处理东莞网络营销策划
  • 做知识产权相关的网站网站怎么做登录界面
  • 网站空间备份东莞企业网站教程
  • 新桥企业网站建设有关网站建设的毕业设计
  • 中山网站建设工作修改wordpress后台地址
  • 西安app网站开发如何制作一个自己的网页
  • 陇西学做网站鄂州网约车
  • 做类似58类型网站免费源码分享
  • 个人做的网站有什么危险网站模板怎样发布
  • 设计建设网站公司网站wordpress k2
  • 公司网站被抄袭网络宣传
  • 企业网站设计收费专业网络推广公司排名
  • 视频网站模板源码深圳网站建设明细报价表
  • nike官方网站定制二级域名网站有哪些
  • 越秀移动网站建设房门户网站如何做优化
  • 什么软件可以做动漫视频网站开发一个小程序大概要多少钱
  • 微网站可以做成域名访问株洲网站做的好的公司
  • 建设网站去工信部备案需要什么资料网站建设相关博客
  • 十度网站建设网站建立的企业
  • 婚庆公司网站国外网站阻止国内访问怎么做
  • 乐山高端网站建设wordpress openload
  • 哪些网站上可以做租车深圳品牌网站开发
  • 乐清网站改版公司西安网站建设公司哪家好
  • 国外小型网站1688货源网下载