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

以net结尾的网站体育新闻最新消息

以net结尾的网站,体育新闻最新消息,珠海网站建设的公司排名,陕西天工建设有限公司网站接上节:入门【一】 再创建一个orders子应用,python manager.py startapp orders,orders目录中新建一个urls.py文件。结构如图: 通过上节课,我们知道在views.py文件中编写函数时,有一个默认入参request&…

接上节:入门【一】

再创建一个orders子应用,python manager.py startapp orders,orders目录中新建一个urls.py文件。结构如图:

通过上节课,我们知道在views.py文件中编写函数时,有一个默认入参request,通过它我们可以获取前端传进来的数据。

获取request请求参数

一、获取url后的查询参数

在orders/views.py中新增index函数,直接打印request的内容及其它输出方法。

浏览器中访问如下地址:

http://127.0.0.1:1992/orders/index/?name=testyan&class=yuwen&class=englist
# orders/views.py
from django.http import HttpResponse, JsonResponsedef index(request):print(request)  # <WSGIRequest: GET '/orders/index/?name=testyan&class=yuwen&class=englist'>print(request.GET)  # <QueryDict: {'name': ['testyan'], 'class': ['yuwen', 'englist']}> print(request.GET.get('name'))  # testyanprint(request.GET.getlist('class'))  # ['yuwen', 'englist']print(request.GET.get('sex', 'F'))  # F 当无字段值时,第二个字段为默认值

request.GET仅获取url后拼接的数据,在浏览器中通过地址栏访问是GET方法,但其实无论是何种请求方式都能通过request.GET获取,比如你可以在postman中选择POST发送请求,也能获取到请求url后拼接的查询参数。

二、获取请求数据
    print(request.POST)print(request.POST.get('fruit'))print(request.POST.getlist('num'))

request.POST只能接收post方法的请求体,不能接受put或patch方法,而且只能针对form-data 和x-www-form-urlencoded格式才能获取到。如果是json等其它格式,可以通过request.body获取。

如下代码是在postman中传入json格式的入参获取的结果: 

    print(request.body)  # b'{"fruit":"apple",\r\n"num":10\r\n}'print(json.loads(request.body))  # {'fruit': 'apple', 'num': 10}

接受post、put或patch方法的请求体都可用request.body,如果是表单请求,数据格式比较冗余,建议使用json格式的请求数据。

三、获取请求头信息

在postman中请求时,可以自定义请求头字段,通过以下方式获取。

    # 获取原生请求头信息print(request.META)# 获取处理后的请求头信息print(request.headers)# 获取自定义头信息print(request.headers.get('define'))
四、获取请求体中的文件
from django.views.decorators.http import require_http_methods# Create your views here.
@require_http_methods(['POST'])
def index(request): # 获取请求中的文件,只有POST请求才可以获取file = request.FILESprint(file)  # <MultiValueDict: {'fruit': [<InMemoryUploadedFile: windows秘钥.txt (text/plain)>]}>print(file.get('fruit').read())  # 读取文件内容return HttpResponse('<h1>orders的index页面</h1>', content_type='text/html')

注意,只有POST请求才能获取文件数据。

获取response响应参数

以上代码示例都是返回一个普通的文字或样式,除此外,还可以返回json数据、图片、压缩包等。

一、返回json数据
from django.http import HttpResponse, JsonResponsedef index2(request):# 可以定义content_type、status和响应头# return HttpResponse(content='<h1>orders2</h1>', content_type='text/html', status=201, headers={'token': 80})data = {'name': 'siwan', 'age': 10}# return HttpResponse(content=json.dumps(data), content_type='text/json')# return JsonResponse(data)  # 同上一行的效果data2 = [{'name': 'siwan', 'age': 10}, {'name': 'bawan', 'age': 20}]# 因为data2其实是列表,当用JsonResponse返回时,需要关闭安全检测。return JsonResponse(data2, safe=False)
二、返回图片或压缩文件
def index3(request):# 返回图片、压缩文件等with open('./image-1.png', 'rb') as f:img = f.read()return HttpResponse(img, content_type='image/png')# with open('./zip.zip', 'rb') as f:#     zip = f.read()# return HttpResponse(zip, content_type='application/zip')

 重定向功能实现

 一、外部重定向
def index4(request):# 外部重定向,302临时重定向# res = HttpResponse(status=302)# res['location'] = 'https://www.qq.com'# return res# 相当于# return HttpResponseRedirect('https://www.qq.com')

当访问 http://127.0.0.1:1992/orders/index4/时,就自动跳转到qq网站。

二、内部重定向
# 内部重定向, 基于redirect直接指定内部跳转路由def index4(request):  from django.shortcuts import redirectreturn redirect('/orders/index3/')

以上设置,会讲index4的访问重定向到index3。但是当正则路由时,这样写就不太方便,需要给路由设置个别名。正则路由指的是路由地址不是固定的,而是需要用正则来匹配。

# 首先在orders/urls.py中给index3设置路由别名,并给orders设置app_name
from . import views
from django.urls import pathapp_name = 'orders_alias'urlpatterns = [path('index/', views.index),path('index2/', views.index2),path('index3/', views.index3, name='alias3'),  # 路由别名path('index4/', views.index4)
]# 然后在跟urls.py中给orders设置命名空间,要和app_name一致
from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('app01/', include('app01.urls')),path('orders/', include('orders.urls', namespace='orders_alias')) 
]# 然后orders/views.py中
def index4(request):# 内部重定向,基于redirect+reverse对路由别名反向解析进行跳转from django.shortcuts import redirect, reverseurl = reverse('orders_alias:alias3')print(url)return redirect(url)

这样,当访问http://127.0.0.1:1992/orders/index4/      时就会重定向到 http://127.0.0.1:1992/orders/index3/

http://www.dtcms.com/wzjs/396058.html

相关文章:

  • 手机网站赏析如何优化关键词的排名
  • 定制专业网站seo快速优化软件
  • 备案公司网站建设方案书做一个网站需要多少钱
  • 企业宣传网站公司十大软件培训机构
  • 公司网站怎样制作如何介绍自己设计的网页
  • 做淘宝客网站必须备案吗dy刷粉网站推广马上刷
  • 我爱做妈妈网站舆情信息网
  • 专门做酒店设计的网站四川疫情最新情况
  • 如何在人力资源网站做合同续签微信群拉人的营销方法
  • 重庆建设网站多久时间文案代写平台
  • 书店如何做网站seo工具在线访问
  • 专门提供做ppt小素材的网站日本网络ip地址域名
  • 网站建设朋友圈网址安全检测中心
  • 成都网站制作套餐淘宝关键词排名
  • 做的网站有广告图片市场调研报告800字
  • 做五金奖牌进什么网站如何自己创建一个网站
  • 正规网站建设公司在哪里seo排名赚挂机
  • 互联网网站项目方案书百度地图在线使用
  • 网站是用sql2012做的_在发布时可以改变为2008吗市场策划方案
  • 网站建设中企动力谷歌网页
  • 专业网站设计专业服务宁波seo在线优化公司
  • 如何建设网站zy258创建网址快捷方式
  • 海南网站设计公司微博营销案例
  • 做pc端网站机构互联网金融
  • 做网站要具备哪些月嫂免费政府培训中心
  • 我想学网站建设杭州百度人工优化
  • 邯郸整站优化网站发布与推广
  • 赣榆网站建设杭州排名推广
  • 做旅游网站广州网站seo
  • 做网站一定要数据库吗线上营销推广方式都有哪些