zoukankan      html  css  js  c++  java
  • 【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变量显示到页面上全部都是小写了

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

    感谢阅读,一起努力呗!
  • 相关阅读:
    hdu 1426(DFS+坑爹的输入输出)
    hdu 1430(BFS+康托展开+映射+输出路径)
    hdu 1664(数论+同余搜索+记录路径)
    BestCoder Round #86 二,三题题解(尺取法)
    hdu 1226(同余搜索)
    poj 1426(同余搜索)
    poj 2251(同余)
    hdu 1044(bfs+dfs+剪枝)
    hdu 1455(DFS+好题+经典)
    安装centos7后不能联网
  • 原文地址:https://www.cnblogs.com/jennyhui/p/4251876.html
Copyright © 2011-2022 走看看