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

我制作了一个网站百度公司在哪

我制作了一个网站,百度公司在哪,wordpress mac版下载地址,制作灯笼的手工做法视频文章目录 HttpRequestHttpResponse实践request对象的属性和方法响应 def index(request): 这个request其实就是内部已经封装好的Http请求HttpRequest,它是一个请求对象Django中的视图主要用来接受Web请求,并做出响应。 视图的本质就是一个Python中的函数…

文章目录

  • HttpRequest
  • HttpResponse
  • 实践
    • request对象的属性和方法
    • 响应


def index(request):  这个request其实就是内部已经封装好的Http请求HttpRequest,它是一个请求对象Django中的视图主要用来接受Web请求,并做出响应。
视图的本质就是一个Python中的函数
视图的响应分为两大类1) 以json数据形式返回(JsonResponse)2) 以网页的形式返回2.1) 重定向到另一个网页(HttpResponseRedirect)2.2) 错误视图(4xx,5xx)(HttpResponseNotFound,HttpResponseForbidden,HttpResponseNotAllowed等)
视图响应过程:浏览器输入-> urls 路由匹配  -> 视图响应 -> 回馈到浏览器
视图参数:1)一个HttpRequest的实例,一般命名为request2)通过ur1正则表达式传递过来的参数
位置:通常在应用下的views.py中定义错误视图:1404视图(页面没找到)2400视图(客户操作错误)3) 500视图 (服务器内部错误)

HttpRequest

服务器在接收到Http请求后,会根据报文创建HttpRequest对象
视图中的第一个参数就是HttpRequest对象
Django框架接收到http请求之后会将http请求包装为HttpRequest对象,之后传递给视图。

request常用属性和方法属性:path	请求的完整路径method 	请求的方法,常用GET,POSTGET		类似字典的参数,包含了get的所有参数POST	类似字典的参数,包含了post所有参数FILES	类似字典的参数,包含了上传的文件COOKIES	字典,包含了所有COOKIEsession	类似字典,表示会话META['REMOTE_ADDR']方法:is_ajax()	判断是否是ajax(),通常用在移动端和JS中get_full_path()	返回包含参数字符串的请求路径
QueryDict:	类字典的对象类似字典的数据结构。与字典的区别:可以存在相同的键。QueryDict中数据获取方式dict['uname']dict.get('uname')获取指定key对应的所有值dict.getlist('uname')

HttpResponse

服务器返回给客户端的数据
HttpResponse由程序员自己创建1)不使用模板,直接调用HttpResponse(),返回HttpResponse对象。2)调用模板,进行渲染。使用renderrender(request,template_name[,context])request			请求体对象template_name	模板路径context			字典参数,用来填坑属性: 	content		返回的内容charset		编码格式status_code	响应状态码(2xx,3xx,4xx,5xx)方法:write(xxx)		直接写出文本flush()			冲刷缓冲区set_cookie(key,value='xxx',max_age=None)	设置cookiedelete_cookie(key)		删除cookieHttpResponse子类HttpResponseRedirect响应重定向:可以实现服务器内部跳转return HttpResponseRedict('/grade/2030')使用的时候推荐使用反向解析JsonResponse返回Json数据的请求,通常用在异步请求上JsonResponse(dict)返回json数据时,Content-type是application/json

实践

新建一个项目 Day05DjangoPro,创建一个应用 叫App

在这里插入图片描述
不写子路由啦,直接写根路由Day05DjangoPro\urls.py

from django.contrib import admin
from django.urls import path
from App.views import *urlpatterns = [path('myrequest/',my_request),path('admin/', admin.site.urls),
]

App\views.py

from django.shortcuts import render, HttpResponse# 请求
def my_request(request):print(request)   # 请求对象# <WSGIRequest: GET '/myrequest/'>return HttpResponse('ok')

http://127.0.0.1:8000/myrequest/

打印得到的是<WSGIRequest: GET ‘/myrequest/’>
WSGIRequest是什么?我们可以看一下
在这里插入图片描述
WSGIRequest 继承 HttpRequest ,HttpRequest 再点开看一下
在这里插入图片描述
QueryDict 继承 MultiValueDict,MultiValueDict继承 dict字典,所以QueryDict 可以当成字典来用。QueryDict 是一个 类字典对象。

request对象的属性和方法

App\views.py

from django.shortcuts import render, HttpResponse# 请求
def my_request(request):print(request)  # 请求对象# <WSGIRequest: GET '/myrequest/'># request对象的属性和方法print(request.method)  # 请求方式,GET,POST...print(request.GET)  # GET请求的参数 <QueryDict: {'name': ['清风'], 'age': ['18']}>print(request.GET['name'])  # 第一种方式,如果没有就会报错print(request.GET.get('name', default='匿名用户'))  # 第二种方式,如果没有就会返回None或者默认值(跟字典一样dict),不会报错,推荐使用这种方式print(request.GET.getlist('name'))  # 第三种,如果name有多个值,则都会获取,以列表[]的形式返回,没有数据就返回空列表[]# print(request.POST)  # POST请求的参数 <QueryDict: {}># print(request.POST.get('name', default='匿名用户')) # 也是一样的print(request.path)  # 路径,就是我们写的路由 /myrequest/print(request.get_full_path())  # 整个路径  /myrequest/?age=18&name=%E6%B8%85%E9%A3%8E&name=%E5%BE%AE%E6%B3%ABreturn HttpResponse('ok')

http://127.0.0.1:8000/myrequest/?age=18&name=清风&name=微泫

在这里插入图片描述

此外还有…

# 请求
def my_request(request):print(request)  # 请求对象print(request.COOKIES)  # cookie 会话技术# {'csrftoken': 'lvQaYuMDgiemswhYomZXc1msPaoSS35J'}print(request.session)  # session 会话# <django.contrib.sessions.backends.db.SessionStore object at 0x0000023890CB3890>print(request.FILES)  # 文件,前端上传的文件对象print(request.META['REMOTE_ADDR'])  # 客户端的IP地址return HttpResponse('ok')

响应

Day05DjangoPro\urls.py

path('myresponse/', my_response),

App\views.py

from django.http import JsonResponse
from django.shortcuts import render, HttpResponse, redirect, reverse, HttpResponseRedirectdef my_response(request):# 1. 返回字符串:企业项目中使用很少# return HttpResponse('ok')# 2. 返回模板:前后端不分离的时候使用# return render(request, 'index.html', {'key1': 'value1', 'key2': 'value2'})# 3. 重定向: 页面跳转用的,路径的跳转# redirect 和 HttpResponseRedirect是一样的# return redirect("https://blog.csdn.net/weixin_59633478/category_12401835.html")# return redirect("/request/")# return HttpResponseRedirect("/request/")# redirect(reverse("命名空间:userdetail", args=(2,)))# return redirect(reverse("App:userdetail", kwargs={'uid': 2}))# 4. 返回JSON: 前后端分离的情况使用return JsonResponse({'data': 123})# 请求
def my_request(request):print(request)  # 请求对象# <WSGIRequest: GET '/myrequest/'># request对象的属性和方法# print(request.method)  # 请求方式,GET,POST...# print(request.GET)  # GET请求的参数 <QueryDict: {'name': ['清风'], 'age': ['18']}># print(request.GET['name'])  # 第一种方式,如果没有就会报错# print(request.GET.get('name', default='匿名用户'))  # 第二种方式,如果没有就会返回None或者默认值(跟字典一样dict),不会报错,推荐使用这种方式# print(request.GET.getlist('name'))  # 第三种,如果name有多个值,则都会获取,以列表[]的形式返回,没有数据就返回空列表[]# # print(request.POST)  # POST请求的参数 <QueryDict: {}># # print(request.POST.get('name', default='匿名用户')) # 也是一样的## print(request.path)  # 路径,就是我们写的路由 /myrequest/# print(request.get_full_path())  # 整个路径  /myrequest/?age=18&name=%E6%B8%85%E9%A3%8E&name=%E5%BE%AE%E6%B3%ABprint(request.COOKIES)  # cookie 会话技术# {'csrftoken': 'lvQaYuMDgiemswhYomZXc1msPaoSS35J'}print(request.session)  # session 会话# <django.contrib.sessions.backends.db.SessionStore object at 0x0000023890CB3890>print(request.FILES)  # 文件,前端上传的文件对象print(request.META['REMOTE_ADDR'])  # 客户端的IP地址return HttpResponse('ok')

在这里插入图片描述


在这里插入图片描述
其实render返回的也是HttpResponse,只不过我们通过render_to_string方法将我们模板也就是html和内容加进去,在它内部会将html内容、模板语法 和 发过去的数据 进行结合做渲染,渲染之后得到的content其实是一个可能很长的html数据,所以返回的也是一个字符串。


App\views.py

def my_response(request):response = HttpResponse('ok')response.content = 'hello'response.status_code = 400return response

在这里插入图片描述

http://www.hkea.cn/news/668812/

相关文章:

  • discuz修改网站标题微信小程序开发平台
  • 怎么做国内网站吗seo顾问培训
  • 网站排名不稳定怎么办seo+网站排名
  • 做网站要淘宝热搜关键词排行榜
  • 做网站 创业 流程网络建站流程
  • 怎么做购物网站系统文本广州网络营销推广
  • 网站后台管理系统cms推广seo网站
  • 企业网站备案注销百度推广登陆平台
  • 重庆如何软件网站推广网站优化seo
  • 最专业的佛山网站建设价格3小时百度收录新站方法
  • wordpress门户建站html网页完整代码作业
  • 子域名 做单独的网站广州seo外包公司
  • 凡科建设网站的步骤永久免费无代码开发平台网站
  • 建设一个百度百科类网站网站排名优化的技巧
  • 自己做网站可以吗淄博做网站的公司
  • 个人做健康网站好吗宁波网站制作与推广价格
  • 长沙有哪些做网站的连云港seo优化公司
  • 青羊区定制网站建设报价搜索引擎营销方案
  • 淘宝优惠券查询网站怎么做域名备案官网
  • wordpress自定义url优化教程网下载
  • 模板网站和定制网站百度搜索引擎的网址
  • 企业建设网站公司哪家好app拉新推广接单平台
  • 老虎淘客系统可以做网站吗江西省水文监测中心
  • 高港区企业网站建设快速建站教程
  • 怎样写企业网站建设方案北京网站seo招聘
  • 做蛋糕视频的网站软文广告范文
  • h5自适应网站模板下载网站换友链平台
  • 政府网站建设及管理规范各大搜索引擎入口
  • poedit pro wordpress免费网站推广优化
  • 市场营销产品推广策划方案seo合作代理