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

惠安县建设局网站王也为什么这么受欢迎

惠安县建设局网站,王也为什么这么受欢迎,迁安做网站中的cms润强,学软件开发好还是网站开发好一、请求与响应 视图函数 视图函数#xff0c;简称视图#xff0c;属于Django的视图层#xff0c;默认定义在views.py文件中#xff0c;是用来处理web请求信息以及返回响应信息的函数#xff0c;所以研究视图函数只需熟练掌握两个对象即可#xff1a;请求对象(HttpRequ…一、请求与响应 视图函数 视图函数简称视图属于Django的视图层默认定义在views.py文件中是用来处理web请求信息以及返回响应信息的函数所以研究视图函数只需熟练掌握两个对象即可请求对象(HttpRequest)和响应对象(HttpResponse) 1、请求对象 当一个页面被请求时django会创建一个包含本次请求原信息如http协议请求报文中的请求行、首部信息、内容主体的HttpRequest对象。 之后django会找到匹配的视图将该对象传给视图函数的第一个参数约定俗称该参数名为request类似于我们自定义框架的environ参数。 在视图函数中通过访问该对象的属性便可以提取http协议的请求数据 2、HttpRequest对象属性part1 一.HttpRequest.method获取请求使用的方法值为纯大写的字符串格式。例如GET、POST应该通过该属性的值来判断请求方法在视图函数中if request.method. GET:...if request.method POST:...二.HttpRequest.GET值为一个类似于字典的QueryDict对象封装了GET请求的所有参数可通过HttpRequest.GET.get(键)获取相对应的值在视图函数中request.GET.get(name)三.HttpRequest.POST值为一个类似于字典的QueryDict对象封装了POST请求所包含的表单数据可通过HttpRequest.POST.get(键)获取相对应的值在视图函数中request.POST.get(name)针对表单中checkbox类型的input标签、select标签提交的数据键对应的值为多个需要用HttpRequest.POST.getlist(hobbies)获取存有多个值的列表,同理也有HttpRequest.GET.getlist(键)针对有多个值的的情况也可以用HttpRequest.GET.get(键)默认会获取列表中的最后一个值 案例 urls.py from django.urls import re_path from app01 import viewsurlpatterns [re_path(r^login/$,views.login), ] Views.py from django.shortcuts import render,HttpResponsedef login(request):if request.method GET:# 当请求url为http://127.0.0.1:8001/login/?a1b2c3c4c5# 请求方法是GET?后的请求参数都存放于request.GET中print(request.GET)# 输出QueryDict: {a: [1], b: [2], c: [3, 4, 5]}# 获取后参数的方式为arequest.GET.get(a) # 1brequest.GET.get(b) # 2crequest.GET.getlist(c) # [3, 4, 5]c1request.GET.get(c) # 5return render(request,login.html)elif request.method POST:# 在输入框内输入用户名egon、年龄18选择爱好点击提交# 请求方法为POST表单内的数据都会存放于request.POST中print(request.POST) # 输出QueryDict: {..., name: [egon], age: [18], hobbies: [music, read]}# 获取表单中数据的方式为namerequest.POST.get(name) # egonagerequest.POST.get(age) # 18hobbiesrequest.POST.getlist(hobbies) # [music, read]return HttpResponse(提交成功) 在templates目录下新建login.html !DOCTYPE html html langen headmeta charsetUTF-8title登录页面/title /head body!-- methodpost代表在提交表单时会以POST方法提交表单数据 action/login/ 代表表单数据的提交地址为http://127.0.0.1:8001/login/,可以简写为action/login/,或者action -- form actionhttp://127.0.0.1:8001/login/ methodpost{% csrf_token %} !--强调必须加上这一行后续我们会详细介绍--p用户名input typetext namename/pp年龄input typetext nameage/pp爱好input typecheckbox namehobbies valuemusic音乐input typecheckbox namehobbies valueread阅读input typecheckbox namehobbies valuedancing跳舞/ppinput typesubmit value提交/p/form /body /html 3、HttpRequest对象属性part2 一.HttpRequest.path获取url地址的路径部分只包含路径部分二.HttpRequest.get_full_path()获取url地址的完整path既包含路径又包含参数部分如果请求地址是http://127.0.0.1:8001/order/?nameegonage10#_label3 HttpRequest.path的值为/order/ HttpRequest.get_full_path()的值为/order/?nameegonage10 案例 urls.py from django.urls import path,register_converter,re_path from app01 import viewsurlpatterns [re_path(r^order,views.order), ] views.py from django.shortcuts import render,HttpResponse# 针对请求的url地址http://127.0.0.1:8001/order/?nameegonage10#_label3 # 从域名后的最后一个“/”开始到“”为止是路径部分即/order/ # 从“”开始到“#”为止之间的部分为参数部分,即nameegonage10 def order(request):print(request.path) # 结果为“/order/”print(request.get_full_path()) # 结果为/order/?nameegonage10return HttpResponse(order page) 4、HttpRequest对象属性part3 一.HttpRequest.META.get(...)值为包含了HTTP协议的请求头数据的Python字典字典中的key及期对应值的解释如下CONTENT_LENGTH —— 请求的正文的长度是一个字符串。CONTENT_TYPE —— 请求的正文的MIME类型。HTTP_ACCEPT —— 响应可接收的Content-Type。HTTP_ACCEPT_ENCODING —— 响应可接收的编码。HTTP_ACCEPT_LANGUAGE —— 响应可接收的语言。HTTP_HOST —— 客服端发送数据的目标主机与端口HTTP_REFERER —— Referring 页面。HTTP_USER_AGENT —— 客户端使用的软件版本信息QUERY_STRING —— 单个字符串形式的查询字符串未解析过的形式。REMOTE_ADDR —— 客户端的IP地址。REMOTE_HOST —— 客户端的主机名。REMOTE_USER —— 服务器认证后的用户。REQUEST_METHOD —— 一个字符串例如GET 或POST。SERVER_NAME —— 服务器的主机名。SERVER_PORT —— 服务器的端口是一个字符串。从上面可以看到除 CONTENT_LENGTH 和 CONTENT_TYPE 之外HTTP协议的请求头数据转换为 META 的键时都会1、将所有字母大写2、将单词的连接符替换为下划线3、加上前缀HTTP_。所以一个叫做 X-Bender 的头部将转换成 META 中的 HTTP_X_BENDER 键。二、HttpRequest.encoding一个字符串表示提交的数据的编码方式如果为 None 则表示使用 DEFAULT_CHARSET 的设置默认为 utf-8。这个属性是可写的你可以修改它来修改访问表单数据使用的编码。接下来对属性的任何访问例如从 GET 或 POST 中读取数据将使用新的 encoding 值。如果你知道表单数据的编码不是 DEFAULT_CHARSET 则使用它。三、HttpRequest.scheme表示请求方案的字符串通常为http或https四、其他 HttpRequest还有很多其他重要属性比如HttpRequest.body待我们讲到专门的知识点时再专门详细讲解 5、响应对象 请求对象HttpRequest是由django为我们创建好的直接使用即可而响应对象则需要我们负责创建。我们编写的每个视图都应该返回一个HttpResponse对象响应可以是一个网页的HTML内容一个重定向一个404错误一个XML文档或者一张图片。用来返回响应对象的常用类如下 from django.shortcuts import HttpResponse from django.shortcuts import redirect from django.shortcuts import renderfrom django.http importJsonResponse 6、HttpResponse  from django.http import HttpResponse response HttpResponse(Heres the text of the Web page.) response HttpResponse(Text only, please., content_typetext/plain) psContent-Type用于指定响应体的MIME类型MIME类型 mime类型是多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开MIME 类型有非常多种一般常见的有text/html浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。text/plain意思是将文件设置为纯文本的形式浏览器在获取到这种文件时并不会对其进行处理。image/jpegJPEG格式的图片image/gifGIF格式的图片video/quicktimeApple 的 QuickTime 电影application/vnd.ms-powerpoint微软的powerpoint文件7、render def render(request, template_name, contextNone, content_typeNone, statusNone, usingNone):Return a HttpResponse whose content is filled with the result of callingdjango.template.loader.render_to_string() with the passed arguments.content loader.render_to_string(template_name, context, request, usingusing)return HttpResponse(content, content_type, status)参数1、request用于生成响应的请求对象固定必须传入的第一个参数2、template_name要使用的模板的完整名称必须传入render默认会去templates目录下查找模板文件3、context可选参数可以传入一个字典用来替换模块文件中的变量默认是一个空字典。如果字典中的某个值是可调用的视图将在渲染模板之前调用它。4、content_type生成的文档要使用的MIME类型。默认为 DEFAULT_CONTENT_TYPE 设置的值。默认为text/html5、status响应的状态码。默认为200。6、using: 用于加载模板的模板引擎的名称。 8、redirect   返回重定向对象返回的状态码为302第一个参数用来指定浏览器重定向的地址可以是 #1、一个完全标准的URL地址如https://www.yahoo.com/search/ #2、也可以是一个没有域名的绝对路径如/search/ #3、或者是一个没有域名的相对路径如search/,与1、2直接跳转到指定的绝对路径不同相对路径需要先与当前路径进行拼后才能跳转例如如果当前路径为http://127.0.0.1:8080/index/拼接后的路径为http://127.0.0.1:8080/index/search/# psredirect重定向等同于下述操作 def index(request):responseHttpResponse()response.status_code302 # 必须设置响应的状态码才能重定向response[Location]/register/ # 设置响应头return response 9、JsonResponse 向前端返回一个json格式字符串的两种方 方式一 import jsondef my_view(request):data[egon,kevin]return HttpResponse(json.dumps(data) ) 方式二 from django.http import JsonResponsedef my_view(request):data[egon,kevin]return JsonResponse(data,safeFalse)#默认safeTrue代表只能序列化字典对象safeFalse代表可以序列化字典以外的对象
http://www.zqtcl.cn/news/321602/

相关文章:

  • 手机网站大全网站收费网站推广
  • 华企立方做网站自己动手做导航网站
  • 如何建设教师网上授课网站重庆建设网站哪家专业
  • 企业网站页头背景图建设三轮摩托车官网
  • 直播网站创做上海idc机房托管
  • 受欢迎自适应网站建设地址c2c二手车交易平台
  • 做个平台网站怎么做房价查询
  • 自学网站建设最快要多久asp.net 手机网站开发
  • 淮安做网站找哪家公司verycloud wordpress
  • 无法连接到wordpress站点网站建设的 几点
  • 网站免费空间购买wordpress支持页面模版
  • 腾讯建设网站视频宁波城乡住房建设厅网站
  • 乐清网站开发公司个人网站建设工作室
  • 网站空间升级通知手机端怎么看世界杯
  • 广西南宁网站推广建设网站视频教程
  • 福州专业网站建设推广费用nas可做网站服务器吗
  • 齐鲁建设网站福建省高速公路建设管理网站
  • 比格设计网站官网收录网站查询
  • 国外做直播网站淘宝电商网站怎么做的
  • 国外私人网站网站由那些组成
  • 网站备案多久通过机械设备网站
  • 企业自建站案例网站基础知识域名5个点
  • 咸宁建设网站海口市网站建设
  • 认识电子商务网站建设技术网站交换链接怎么做?
  • 定制商城网站建设全球搜索引擎排名2021
  • 徐州百度网站快速优化做网站视频图片加载不出来
  • 网站被host重定向处理浙江网新股吧
  • asp国外网站什么页游好玩
  • 高端简约30平米办公室装修广州搜索seo网站优化
  • 海口的网站建设公司wordpress二次元极简主题