码迷,mamicode.com
首页 > 其他好文 > 详细

65 组件 静态文件相关 视图

时间:2018-10-09 21:45:15      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:boot   png   内容   isp   json   cut   地方   info   ini   

主要内容:https://www.cnblogs.com/maple-shaw/articles/9285269.html

1 组件

  a : 定义:可以将常用的页面内容如导航条,页尾信息等组件保存在单独的文件中,然后在需要使用的地方按如下语法导入即可

  b : 语法:  {% include ‘组件名‘%}

2 静态文件相关:

       a : 语法: {% load static %}

  {% load static %}
    <link href="{% static ‘bootstrap-3.3.7/css/bootstrap.css‘ %}" rel="stylesheet">
    <link href="{% static ‘s14_files/dashboard.css‘ %}" rel="stylesheet">

   获取静态前缀:get_static_prefix

{% load static %}
    <link href="{% get_static_prefix %}bootstrap-3.3.7/css/bootstrap.css" rel="stylesheet">
    <link href="{% get_static_prefix %}s14_files/dashboard.css" rel="stylesheet">

  两个的区别: 第一种是jango自动拼接成的路径, 第二种是自己手动拼接成的路径

3 simple_tag

4 inclusion_tag 

  a : 定义: 多用于返回html代码片段

  b : 课上讲解: 分页

技术分享图片

5 视图

  1:CBV 和 FBV

    FBV: 我们之前写的基于函数的view, 就叫FBV

    CBV: 把函数写成基于类的, 就叫CBV

from django.views import View
class AddPress(View):
    def get(self, request):
        return render(self.request, ‘add_press22.html‘)
    def post(self, request):
        add_name = self.request.POST.get(‘name‘)
        Press.objects.create(name=add_name)
        return redirect(‘/press_list/‘)

  url中的代码段:

    url(r‘^add_press/‘, views.AddPress.as_view()),

  CBV的执行流程:

    1 AddPress.as_view()  —— 》 view函数

    2 当请求到来的时候执行view函数:

      1. 实例化自己写的类:   self = cls(**initkwargs)

      2. self.request = request

      3 . 执行dispatch(request, *args, **kwargs)

        1. 自己没有该方法, 执行父类中的此方法

          ? 判断请求方式是否被允许

            允许的情况:  handler = 通过反射获取get 或者 post 方法

            不允许:         handler = 不允许的方法

            handler(request, *args, **kwargs)

        2 . 返回HttpResponse对象

      4 . 返回HttpResponse对象 给jango

        

  2 request:

   # print(request.method)    请求中使用的http方法, 全大写表示
    print(request.body) 请求体, bytes类型, request.POST的数据都是从body中取 # print(request.GET) #包含所有http GET参数的类字典对象 # print(request.POST) #包含所有http POST参数的类字典对象 取form表单提交的数据 # print(request.path_info) #返回用户访问的url, 不包括域名 # print(request.encoding) # print(request.get_host()) #127.0.0.1:8000 # print(request.get_full_path()) #/test/ # print(request.is_secure()) #/False # print(request.is_ajax()) #False
   print(request.scheme) # 返回的是http或者是https
   print(request.META) 一个标准的Python 字典,包含所有的HTTP 首部。具体的头部信息取决于客户端和服务器,

  3 response

    1: 常见的三个响应

      from django.shortcuts import render, HttpResponse, redirect
         1. HttpResponse    HttpResponse(‘字符串‘)  
         2. render(request,‘html文件名‘,{})    —— 》 HTML代码
         3. redirect(跳转的地址)

    2 :JsonResponse       : json序列化
       HttpResponse(json.dumps(ret))  # Content-Type: text/html; charset=utf-8
         JsonResponse(ret)      # Content-Type: application/json
import json
from django.http import JsonResponse
def json_data(request):
    dic = {‘name‘: ‘alex‘, ‘age‘: 122}
    # return JsonResponse(dic)
    return HttpResponse(json.dumps(dic))

  

 

65 组件 静态文件相关 视图

标签:boot   png   内容   isp   json   cut   地方   info   ini   

原文地址:https://www.cnblogs.com/gyh412724/p/9762620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!