zoukankan      html  css  js  c++  java
  • 路由层,视图层,模板层 总结

    路由:
        1 第一个参数,传正则表达式
            '^$'  视图函数index
            tets/(d+)
            test/2014
            ....
            ''   404错误页面
        2 无名分组:(d+)用括号分组
        3 有名分组:(?P<year>[0-9]{4})   视图函数:year必须对应,位置可以乱
        4 有名和无名不要同时使用
        5 路由分发:   匹配正则   include('app.urls')---两种写法
            跟路由配置,再settings里
        6 反向解析  
            视图函数:url=reverse('name',args=(123,))  有名分组:url=reverse('name',kw={...})
            模板里:  {% url 'name' %}  ---->{% url 'name' 参数1 参数2 %}----》{% url 'name' key=参数1 key=参数2 %}
        7 名称空间:include('app.urls',namespace='app01')
            反向解析,通过namespace来找
            url=reverse('app01:name',args=(123,))
            {% url 'app01:name' %}
        8 伪静态
        9 2.0 和1.几区别:url 就是re_path   2.0多了个path
        10 path 精准匹配,不支持正则
            int str slug uuid  path 
            <int:year>----》视图函数:参数名也叫year
            自定义转换器:
                regex=正则
                to_python
                to_url
    视图:
        1 request对象:method  POST  GET FILES path  get_full_path() 
        2 response 对象  三件套 Jsonresponse  django.http improt Jsonresponse
        3 CBV  View : get(self,request)   post(self,request)  dispatch  一定要return
            再路由里怎么写:类名.as_view()
        4 MVC和MTV
        5 文件上传 基于form表单  type 是file  
            重点:<form action="" method="post" enctype="multipart/form-data">
                    <input type="file" name=‘1’>
                    <input type="file" name=‘2’>
                    <input type="file" name=‘3’>
                  </form>
            body体的内容格式:b'name=lqz&age=18'   
            FILES是个字典:字典取值 ,去出来是个文件对象 
            补充:直接循环file对象
    模板:
        1 {{ }}
            据点符:深度查询,点函数(不能加括号,不能传参数)
            过滤器:
        2 {% %}
            for  for 嵌套 if   forloop   empty
            if   in is >....
            with 给变量重命名   1 aa=aaaaa.aaaaa   2 aaaaa.aaaaa as aa
            
        3 自定义标签,自定义过滤器
            from django import template
    
            register=template.Library()
    
            @register.filter(name='xxx')
            def aa(x,y):
                return 'dd'
    
            @register.simple_tag(name='yy')
            def bb(x,y,z,t):
                return 'ccc'
                
            模板用:
                {% load mytest%}
                过滤器:{{参数|xxx:'参数'}}
                标签:{% yyy 参数 参数 参数 %}
                
                最大区别:过滤器,可以放在if判断里
                
                    <ul>
                    {% if data%}
                    
                    {%endif%}
    
                    </ul>
        静态文件引入的三种方式
            一:
            <link rel="stylesheet" href="/static/dd/ssmycss.css">
            二:
                {% load static %}
                <link rel="stylesheet" href="{% static 'dd/ss/mycss.css' %}">
                {#    返回值:/static/dd/ss/mycss.css#}
            三:
                <link rel="stylesheet" href="{% get_static_prefix %}dd/ss/mycss.css">
        
        模板导入和继承
            include 和extend
        
    模型层之单表操作:
            1     'default': {
                    'ENGINE': 'django.db.backends.mysql',
                    'NAME': 'mytest',
                    'HOST': '127.0.0.1',
                    'PORT': 3306,
                    'USER': 'root',
                    'PASSWORD': 'egon123'
                }
            2 init.py  
                import pymysql
                # django 默认用mysqldb连接mysql数据库,但是mysqldb这个模块不支持python3.0以后的版本,
                # 所以用pymysql来替换mysqldb
                pymysql.install_as_MySQLdb()
            
                        
            
  • 相关阅读:
    [BZOJ4869][洛谷P3747][六省联考2017]相逢是问候(线段树)
    [WC2014][BZOJ3435][洛谷P3920]紫荆花之恋(动态点分治+treap)
    JavaScript对象JQuery In Action
    每日一条SQL LEFT JOIN
    Div border 显示不出来的原因
    HTML列表标记:dl、dt、dd
    The Effective Executive 笔记 一
    c# 解析JSON的几种办法
    使用if else 容易犯的错
    每日一句SQL:内联视图
  • 原文地址:https://www.cnblogs.com/xujinjin18/p/9620463.html
Copyright © 2011-2022 走看看