zoukankan      html  css  js  c++  java
  • Django one

    WEB-Django:

        Http协议

            http协议:超文本传输协议,基于TCP/IP通信协议来传递数据

            特点:

                1.灵活:允许传输任意类型的数据对象。正在传输的类型有Content-Type标记

                2.无连接:每次连接只处理一个请求,服务器处理完请求后,即断开来接,直到下一次客户端的请求。

                3.无状态:指对事物处理没有记忆能力,后续处理需要前面的信息就必须重新传递。

        请求协议:

            请求行首:请求方式 请求路径 协议和版本 GET /index.html HTTP/1.1

            请求头信息:请求头名称,请求头内容

            空行:用于请求头和请求体分隔

            请求体:post请求才有请求体

        HTTP响应:

            状态行,消息报头,空行,响应正文

        MTV:

            model:负责业务对象与数据库对象

            template:负责页面渲染传递给前端显示

            view:负责处理业务逻辑,适当的调用model和template

        django请求生命周期:

            在页面输入URL->根据URL在路由系统匹配相应的view->view处理逻辑并有可能到model获取数据->

            model通过ORM到数据库获取数据并返回给view->view将获取到的数据进行处理传送到模板template进行渲染->

            再由template发送到客户端即(浏览器)进行渲染。

        其他:

            1.#设置项是否开启URL访问地址后面不为/跳转至带有/的路径  APPEND_SLASH=True

            2.每个捕获的参数都作为一个普通的Python 字符串传递给视图,无论正则表达式使用的是什么匹配方式

            3.media的配置

                MEDIA_URL="/media/"

                MEDIA_ROOT=os.path.join(BASE_DIR,"app01","media","upload")

            4.二级路由匹配 url(r'^blog/', include('blog.urls')),

            5.有名分组:url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),

            6.带有别名路由:url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive,name='year_archive'),

            7.反向解析URL: return redirect(reverse('news-year-archive', args=(year,)))

            8.request方法:

                .path:请求页面的全路径,不包括域名

                .method:请求方式,'GET''POST'

                .GET:包括GET参数的字典对象

                .POST:包括POST参数的字典对象

                .COOKIES 包含所有的cookies ,key和value都是字符串

                .FILES .filename 上传文件名; content_type 上传文件的content type; .content:上传文件的原始内容

                .user

                .session

                .request.POST.getlist('hobby') :当值时多个时如checkbox,select

        模板过滤:

            1.default:如果变量是False或者为空时,使用给定的默认值

                {{value|default:12}}

            2.length:返回值的长度,包括字符串和列表

                {{list|length}}

            3.filesizeformat:将值格式化为一个可读文件尺寸,如果value是123456789 输出117.7M

                {{value|filesizeformat}}

            4.data:如果 value=datetime.datetime.now()

                {{ value|date:"Y-m-d" }}

            5.slice

                {{ value|slice:"2:-1" }}

            6.truncatechars:如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾

                {{ value|truncatechars:9 }}

            7.safe:表示安全,允许被渲染

                {{value|safe}}

            8.for...enpty...endfor:

                for带有一个可选{%enpty%},以便于在给出的组是空的或者没有被找到时,有所操作。

            9.反向for循环

                {%for item in list reversed%} {%endfor%}

            10.便利一个字典

                {%for key,val in dic.items%} {%endfor%}

           

        自定义标签和过滤器

            1.在setting中的INSTALLED_APPS配置app,不然django无法找到自定义的simple_tag

            2.在app中创建templatetags模块,名字不可变

            3.在templatetags中创建.py文件,如my_tags.py

            4.在my_tags.py 中导入并注册

                for django import template

                for django.utils.safestring import mark_safe

                register = template.Library

            5.在函数头加装饰器

                @register.simple_tag

                @register.filter

            6.创建函数

                @register.filter

                def filter_multi(v1,v2):

                    return v1*v2

                   

                @register.simple_tag

                def simple_tag_multi(v1,v2):

                    return v1*v2

            7.调用自定义标签

                {%load my_tags%}

                #num=12

                {{num|filter_multi:2}} #24

                {%simple_tag_multi num 2%} #24 参数不限,但不能放在if for 语句中

               

                {% if num|filter_multi:30>100%}

                    {{num|filter_multi:30}}

                {%endfor%}

           

  • 相关阅读:
    LIKE语句也可以这样写
    a链接触发javascript函数导致innerHTML里的图片无法加载
    引用类型真屌
    网站建设心得
    SPAN
    Go! 环境配置和入门
    linux内核编译
    面试题
    KCMT开源控件之方便简洁的分页控件
    c#中out、ref和params的用法与区别
  • 原文地址:https://www.cnblogs.com/mihon/p/8980842.html
Copyright © 2011-2022 走看看