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

网站排版策划WordPress阿里oss

网站排版策划,WordPress阿里oss,网站建设怎么打开,做油漆稀料用哪个网站Django的View#xff08;视图#xff09; 一个视图函数#xff08;类#xff09;#xff0c;简称视图#xff0c;是一个简单的Python 函数#xff08;类#xff09;#xff0c;它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容#xff0c;一个重定向视图 一个视图函数类简称视图是一个简单的Python 函数类它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容一个重定向一个404错误一个XML文档或者一张图片。 无论视图本身包含什么逻辑都要返回响应。代码写在哪里也无所谓只要它在你当前项目目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了将代码放在某处大家约定成俗将视图放置在项目project或应用程序app目录中的名为views.py的文件中。 一个简单的视图 下面是一个以HTML文档的形式返回当前日期和时间的视图 from django.http import HttpResponse import datetimedef current_datetime(request):now datetime.datetime.now()html htmlbodyIt is now %s./body/html % nowreturn HttpResponse(html) 让我们来逐行解释下上面的代码 首先我们从 django.http模块导入了HttpResponse类以及Python的datetime库。 接着我们定义了current_datetime函数。它就是视图函数。每个视图函数都使用HttpRequest对象作为第一个参数并且通常称之为request。 注意视图函数的名称并不重要不需要用一个统一的命名方式来命名以便让Django识别它。我们将其命名为current_datetime是因为这个名称能够比较准确地反映出它实现的功能。 这个视图会返回一个HttpResponse对象其中包含生成的响应。每个视图函数都负责返回一个HttpResponse对象。 Django使用请求和响应对象来通过系统传递状态。 当浏览器向服务端请求一个页面时Django创建一个HttpRequest对象该对象包含关于请求的元数据。然后Django加载相应的视图将这个HttpRequest对象作为第一个参数传递给视图函数。 每个视图负责返回一个HttpResponse对象。 CBV和FBV 我们之前写过的都是基于函数的view就叫FBV。还可以把view写成基于类的。 就拿我们之前写过的添加班级为例 FBV版 # FBV版添加班级 def add_class(request):if request.method POST:class_name request.POST.get(class_name)models.Classes.objects.create(nameclass_name)return redirect(/class_list/)return render(request, add_class.html) CBV版 # CBV版添加班级 from django.views import Viewclass AddClass(View):def get(self, request):return render(request, add_class.html)def post(self, request):class_name request.POST.get(class_name)models.Classes.objects.create(nameclass_name)return redirect(/class_list/) 注意 使用CBV时urls.py中也做对应的修改 # urls.py中 url(r^add_class/$, views.AddClass.as_view()), 给视图加装饰器 使用装饰器装饰FBV FBV本身就是一个函数所以和给普通的函数加装饰器无差 def wrapper(func):def inner(*args, **kwargs):start_time time.time()ret func(*args, **kwargs)end_time time.time()print(used:, end_time-start_time)return retreturn inner# FBV版添加班级 wrapper def add_class(request):if request.method POST:class_name request.POST.get(class_name)models.Classes.objects.create(nameclass_name)return redirect(/class_list/)return render(request, add_class.html) 使用装饰器装饰CBV 类中的方法与独立函数不完全相同因此不能直接将函数装饰器应用于类中的方法 我们需要先将其转换为方法装饰器。 Django中提供了method_decorator装饰器用于将函数装饰器转换为方法装饰器。 # CBV版添加班级 from django.views import View from django.utils.decorators import method_decoratorclass AddClass(View):method_decorator(wrapper)def get(self, request):return render(request, add_class.html)def post(self, request):class_name request.POST.get(class_name)models.Classes.objects.create(nameclass_name)return redirect(/class_list/)  关于CBV的扩展阅读 Request对象和Response对象 request对象 当一个页面被请求时Django就会创建一个包含本次请求原信息的HttpRequest对象。Django会将这个对象自动传递给响应的视图函数一般视图函数约定俗成地使用 request 参数承接这个对象。   官方文档 请求相关的常用值 path_info     返回用户访问url不包括域名method        请求中使用的HTTP方法的字符串表示全大写表示。GET              包含所有HTTP  GET参数的类字典对象POST           包含所有HTTP POST参数的类字典对象body            请求体byte类型 request.POST的数据就是从body里面提取到的属性 所有的属性应该被认为是只读的除非另有说明。  request属性相关   上传文件示例  上传文件示例代码 方法  请求相关方法   注意键值对的值是多个的时候,比如checkbox类型的input标签select标签需要用 request.POST.getlist(hobby) Response对象 与由Django自动创建的HttpRequest对象相比HttpResponse对象是我们的职责范围了。我们写的每个视图都需要实例化填充和返回一个HttpResponse。 HttpResponse类位于django.http模块中。 使用 传递字符串 from django.http import HttpResponse response HttpResponse(Heres the text of the Web page.) response HttpResponse(Text only, please., content_typetext/plain) 设置或删除响应头信息 response HttpResponse() response[Content-Type] text/html; charsetUTF-8 del response[Content-Type] 属性 HttpResponse.content响应内容 HttpResponse.charset响应内容的编码 HttpResponse.status_code响应的状态码 JsonResponse对象 JsonResponse是HttpResponse的子类专门用来生成JSON编码的响应。 from django.http import JsonResponseresponse JsonResponse({foo: bar}) print(response.content)b{foo: bar} 默认只能传递字典类型如果要传递非字典类型需要设置一下safe关键字参数。 response JsonResponse([1, 2, 3], safeFalse) Django shortcut functions 官方文档 render()   结合一个给定的模板和一个给定的上下文字典并返回一个渲染后的 HttpResponse 对象。 参数request 用于生成响应的请求对象。template_name要使用的模板的完整名称可选的参数context添加到模板上下文的一个字典。默认是一个空字典。如果字典中的某个值是可调用的视图将在渲染模板之前调用它。content_type生成的文档要使用的MIME类型。默认为 DEFAULT_CONTENT_TYPE 设置的值。默认为text/htmlstatus响应的状态码。默认为200。   useing: 用于加载模板的模板引擎的名称。一个简单的例子 from django.shortcuts import renderdef my_view(request):# 视图的代码写在这里return render(request, myapp/index.html, {foo: bar}) 上面的代码等于 from django.http import HttpResponse from django.template import loaderdef my_view(request):# 视图代码写在这里t loader.get_template(myapp/index.html)c {foo: bar}return HttpResponse(t.render(c, request)) redirect() 参数可以是 一个模型将调用模型的get_absolute_url() 函数一个视图可以带有参数将使用urlresolvers.reverse 来反向解析名称一个绝对的或相对的URL将原封不动的作为重定向的位置。默认返回一个临时的重定向传递permanentTrue 可以返回一个永久的重定向。 示例: 你可以用多种方式使用redirect() 函数。 传递一个具体的ORM对象了解即可 将调用具体ORM对象的get_absolute_url() 方法来获取重定向的URL from django.shortcuts import redirectdef my_view(request):...object MyModel.objects.get(...)return redirect(object) 传递一个视图的名称 def my_view(request):...return redirect(some-view-name, foobar) 传递要重定向到的一个具体的网址 def my_view(request):...return redirect(/some/url/) 当然也可以是一个完整的网址 def my_view(request):...return redirect(http://example.com/) 默认情况下redirect() 返回一个临时重定向。以上所有的形式都接收一个permanent 参数如果设置为True将返回一个永久的重定向 def my_view(request):...object MyModel.objects.get(...)return redirect(object, permanentTrue)   扩展阅读  临时重定向响应状态码302和永久重定向响应状态码301对普通用户来说是没什么区别的它主要面向的是搜索引擎的机器人。 A页面临时重定向到B页面那搜索引擎收录的就是A页面。 A页面永久重定向到B页面那搜索引擎收录的就是B页面。   转载http://www.cnblogs.com/liwenzhou/articles/8305104.html转载于:https://www.cnblogs.com/watchslowly/p/9561495.html
http://www.zqtcl.cn/news/264664/

相关文章:

  • 佛山做外贸网站方案自助网站推广系统
  • 安徽鸿顺鑫城建设集团网站小区物业管理网站开发报告
  • 有关网站建设文章常熟做网站多少钱
  • 网站流量报表江苏住房和城乡建设厅网站
  • 提供做网站公司有哪些个人建网站的费用
  • 网站后台添加表格wordpress垂直分页导航插件
  • 重庆网站建设有限公司六安市裕安区建设局网站
  • 北京产品网站建设如何做移动支付网站
  • 做同城购物网站赚钱吗设计企业网站流程
  • 网站要用什么软件做建设工程施工合同专属管辖
  • 模板网站建设制作佛山正规网站建设哪家好
  • 飞虎队网站建设网络公司起名大全
  • 如何发布自己的网站视频8首页制作代码
  • 网站开发实用案例教程普陀网站制作
  • 建一个网站需要哪些知识招远网站建设
  • 文章标题-栏目名称-网站名 dede环保网站设计建设论文
  • centos wordpress建站北京专门做网站的
  • wordpress网站的彻底清理百度网站联系方式
  • 网站建设签收单网页制作模板的作用
  • 已购买域名 如何做网站网络规划设计师通过率多少
  • 酒店网站建设需求分析wordpress iis
  • 烟台网站建设服务新钥匙网站建设
  • 帝国cms网站地图生成器行业网站建设哪家专业
  • 免费推广网站大全wordpress更改图片大小
  • 中航建设集团网站vps网站无法通过ip访问
  • 学生求职网站的需求分析怎么做江西手机版建站系统开发
  • 电商网站开发文献综述嵌入式软件开发项目
  • 网站备案怎样提交管局网站建设基本步骤
  • 国外优秀电商设计网站开发网站公司推荐
  • 国外企业网站建设模型网站建设谈客户说什么