• 【django】django深入学习笔记


    官网教程 DjangoBook

    Models 模型

    • 一个类代表一个模型

    • 类中的属性对应了对应数据表的数据

    *makemirgations命令生成数据库脚本(还未同步过数据库,第一次要用到) - > migrate 生成更新对应的数据字段等(数据库内)

    模型的取名不要和django.models自带的API重名(增删改查啥的)

    Form 表单

     HttpResponse是返回数据给浏览器, 返回的内容可以是字符串,可以是数字,也可以是网页(渲染后的内容, 就是说一大串字符串) 
     
    request是浏览器想中心发送的请求,django接收到这个请求之后,可以调用request获取到浏览器提交过来的东西。
    1.写model 2.每个model对应写form 3.view中,做表单的数据验证
    http://www.douban.com/note/296298497/
     
    • HttpRequest对象还有两个属性包含了用户所提交的信息: request.GET 和 request.POST。二者都是类字典对象,你可以通过它们来访问GET和POST数据。

    模板 Template

    {{ }} :变量

    {% %}:模板标签 //通知模板系统完成某些工作的标签

    1. 创建模板对象

    2.模板渲染 //传递变量数据给它

    *这里使用了RequestContext处理器,也可以用Context处理器实现,或render直接一步实现

    **使用Django模板系统的基本规则: 写模板,创建 Template 对象,创建 Context , 调用 render() 方法

    **模板中的{{}},在view里写的时候,对应的可以调用key的value属性,也可以是key的方法(名)(只能调用不需参数的方法),也可以是访问列表索引(不允许使用负数列表索引)(字典key:value)

    当模板系统在变量名中遇到点时,按照以下顺序尝试进行查找:

    • 字典类型查找 (比如 foo["bar"] )

    • 属性查找 (比如 foo.bar )

    • 方法调用 (比如 foo.bar() )

    • 列表类型索引查找 (比如 foo[bar] )

    **{{person.name.upper}}  也可以多层的先找person的属性name,在调用upper方法

    3.基本的模板标签和过滤器

    标签{% %}: //都可以多层嵌套

    • if/else/endif

    *else都是可选的而已

    *{% if ____ %} 标签__内接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ) 

    *{% if %} 标签不允许在同一个标签中同时使用 and 和 or ,因为逻辑上可能模糊的

    *一定要用 {% endif %} 关闭每一个 {% if %} 标签

    • for/endfor(循环)

    *forloop.counter 就类似计数器一样不过是从0开始的

    {% for item in todo_list %}
        <p>{{ forloop.counter }}: {{ item }}</p>
    {% endfor %}
    • ifequal/ifnotequal

    *比较两个参数是否一致。参数可以用单双引号包起来

    {% ifequal user currentuser %}
        <h1>Welcome!</h1>
    {% endifequal %}

    **只有模板变量,字符串,整数和小数可以作为 {% ifequal %} 标签的参数

    • 注释

    {# #} 

    要实现多行注释,可以使用`` {% comment %}/{% endcomment %}`` 模板标签

    • 过滤器

    模板过滤器是在变量被显示前修改它的值的一个简单方法。 过滤器使用管道字符 //{{ name|lower }} name变量显示到页面上全部都是小写了

    *可以有多个|;有些过滤器有参数;

    感谢阅读,一起努力呗!
  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/jennyhui/p/4251876.html
Copyright © 2020-2023  润新知