• 视图函数


    视图函数

    • request 请求视图对象

      def index(request):
          print(request.path)  # 请求路径  /index/
          print(request.GET)  # get方法的请求数据, 字典格式.即浏览器地址栏127.0.0.1/index/?a=1&b=2 参数.<QueryDict: {'a': ['1'], 'b': ['2']}>
          print(request.POST)  # post方法的请求数据, 字典格式
          print(request.META)  # 请求头,字典
          print(request.get_full_path())  # 方法, 包括路径和参数   /index/?a=1&b=2
          print(request.is_ajax())  # 判断是否是ajax发的请求, 此处为浏览器发的请求,并非ajax
          return HttpResponse('sucess')
      
      
    • response 响应

      django 对于请求最后一定响应一个HttpResponse对象

      • render
      • HttpResponse
      • redirect
      1. HttpResponse("字符串"):

        可以是普通字符串,也可以是浏览器能够识别的标签字符串 <h1>xxx</h1>
      2. render("页面"), 语法:render(request, '页面文件', 参数(需要模板渲染的变量, 字典格式))

        render(request, 'index.html', {'name': var}) name: django模板的变量, var:views视图函数中的变量名或字符串

        • 读取页面文件字符串

        • 页面中嵌入变量(重要), 在经过模板渲染,django模板语法:

          • {{ }} -----> 变量渲染
          • {% %} ----> 标签渲染

          html页面中不可能写死商品名称,应从数据库中取出数据,再放入页面,所有要有变量。如

          <body>
          
          <h3>商品信息</h3>
          <p>苹果</p>  # 商品应从数据库中调用
          
          </body>
          
          #views.py
          def index(request):
           shangping = '苹果'
           return render(request, 'index.html', {'sp': shangping})
          
          
          <!DOCTYPE html>
          <html lang="en">
          <head>
           <meta charset="UTF-8">
           <title>Title</title>
          </head>
          
          <body>
          
          <h3>商品信息</h3>
          <p>{{ sp }}</p> #######变量渲染
          
          </body>
          </html>
          
      3. redirect() 重定向

        重定向包含2次请求,第一次请求页面,服务器响应重定向请求,浏览器根据重定向信息地址请求页面,服务器响应页面

        def login(request):
            if request.method == 'GET':
                return render(request, 'login.html')
            elif request.method == 'POST':
                username = request.POST.get('username')
                password = request.POST.get('password')
                if username == 'sunny' and password == '123':
                    return redirect('/index/')  # 重定向包含2次请求,浏览器第一次login页面,服务器响应location:/index/, 浏览器请求/index/, 服务器响应index.html页面
                else:
                    return HttpResponse('Wrong username or password')
        

        重定向POST第一次请求:

        第二次根据location浏览器进行get请求:

  • 相关阅读:
    70 sudo-用来以其他身份来执行命令
    69 su -用户和工作组管理
    68 id -显示用户的id
    71 fdisk-Linux 的磁盘分区表操作工具。
    《刘润·5分钟商学院》学习总结01
    批量创建用户和密码
    20 seq 某个数到另外一个数之间的所有整数
    grub.conf文件参数详解
    dig 常用的域名查询工具
    请问-bash-4.1$ 出现故障的原理及解决办法?
  • 原文地址:https://www.cnblogs.com/relaxlee/p/12842739.html
Copyright © 2020-2023  润新知