zoukankan      html  css  js  c++  java
  • 02 django请求响应相关信息,cbvfbv,有名无名分组

    一. request请求相关信息

    request 请求相关信息:
    request.mothod  # 当前请求方法
    request.path       # 请求路径
    request.POST      # QueryDict是django加工出来的新的字典对象,其实还是继承的python的字典然后拓展的功能
    request.boby # post请求方法写的数据的原始数据
    b'username=root&password=123'
    request.GET # 不是get请求方法携带的数据,而是网址上的查询参数数据
    request.get_full_path() # 携带查询参数的路径 /index/?a=1&b=2
    
    

    二.响应相关信息

    from django.shortcuts import render,HttpResponse,redirect
    from django.http import JsonResponse
    
    
    render : 响应html文件数据的
    HttpResponse  响应字符串数据
    redirect : 重定向
    JsonResponse: 响应json格式数据的

    三.有名分组 and 无名分组

    伪代码:
    '''
    请求来了之后
    path = request.path
    import re
    for item in urlpatterns:
        if re.match('^home/',path):
            home()
            break
        
    '''

    1.匹配 / 路径

    url(r'^$', views.home),  # 匹配根路径

    2.无名分组

    
    
    # 无名分组: 将匹配到的数据以位置传参的形式传递给了book函数

    url:
    # url(r'^book/(d+)/(d+)/', views.book) views: def book(request,month,year): print('year>>>>',year, type(year)) # year都是字符串数据 print('month>>>>',month, type(month)) # month都是字符串数据 # select * from ... where year=year res = f"{year}--{month}--book" # var a = `${name}` # '{}'.format return HttpResponse(res) # 这个month和year会自动接收url的两个d+ 然后传入到book函数中

    3. 有名分组

    有名分组:
    将匹配到的数据以关键字传参的形式传递给book函数,而book的形参名称必须有一个year和一个month,位置不固定
    url:
        url(r'^book/(?P<year>d+)/(?P<month>d+)/', views.book),
    views:
        def book(request,month,year):
    
          print('year>>>>',year, type(year))  # year都是字符串数据
        print('month>>>>',month, type(month))  # month都是字符串数据
    
        # select * from ... where year=year
        res = f"{year}--{month}--book"
        # var a = `${name}`
        # '{}'.format
    
        return HttpResponse(res)   

    4.注意点

        # ^/book/ 错误的!  前置导航斜杠不需要自己写,django帮你做了
        # 写正则时,注意,别写冲突了,不然导致后面有些路径就失效了

    四 cbv and fbv

    fbv:

    url:
        url(r'login/',views.home)
    views:
    def login(request):
        if request.method == 'GET':
            return render(request,'login.html')
    
        else:
            username = request.POST.get('username')
            if username == 'laobai':
                return redirect('/home/')
            else:
                return HttpResponse('你不是至尊会员')
        

    cbv:

    url:
        url(r'^book/',views.BookView.as_view())
    views:
        先要引入
        from django.views import View
    
    class BookView(View):
        def get(self,request):
            print('来了')
            return HttpResponse('book')
        def post(self,request):
            pass
  • 相关阅读:
    MAC SAP for JAVA配置
    工艺路线查询
    工单批量关闭
    BOM批量查询
    SE11/SE16N修改表数据
    PI/PO Token配置
    标准IDOC同步物料
    SAP采购订单入库后不允许修改单价增强
    Sap Hana 关于BP的一些理解
    Sap MM 定义物料号码范围
  • 原文地址:https://www.cnblogs.com/whc6/p/14359404.html
Copyright © 2011-2022 走看看