zoukankan      html  css  js  c++  java
  • Django学习笔记

    1、因为URLpattern提供的是“适度但有用”级别的输入校验。万一这个视图函数被其它方式调用,我们仍需自行检查ValueError。在实现视图函数时,不臆测参数值的做法是比较好的。

    2、模板内不允许使用负数列表索引。像{{items.-1}}这样的模板变量将会引发”TemplateSyntaxError”。

    3、在模板方法查找过程中,如果某方法抛出一个异常,除非异常有一个silent_variable_failure属性并且值为True,否则的话它将被传播。如果异常被传播,模板里的指定变量会被设置为空字符串。

    4、如果BankAcount对象有一个delete()方法,某个模板中包含了像{{account.delete}}这样的标签,在这个模板载入时,account对象将被删除。要防止这样的事情发生,必须设置该方法的alters_data函数属性:

    def delete(self):
    	# Delete the account
    delete.alters_data = True

    delete()方法不会被执行,它将静静地错误退出。

    5、{% if %} 标签不允许在同一个标签中同时使用 and 和 or 。多次使用同一个逻辑操作符是没有问题的。没有 {% elif %} 标签。

    6、在执行循环之前先检测列表的大小是一个通常的做法,当列表为空时输出一些特别的提示。

    {% for athlete in athlete_list %}
        <p>{{ athlete.name }}</p>
    {% empty %}
        <p>There are no athletes. Only computer programmers.</p>
    {% endfor %}

    7、在每个`` {% for %}``循环里有一个称为`` forloop`` 的模板变量。这个变量有一些提示循环进度信息的属性。

    8、只有模板变量,字符串,整数和小数可以作为 {% ifequal %} 标签的参数。其他任何类型,例如Python的字典类型、列表类型、布尔类型,不能用在 {% ifequal %} 中。

    9、模板代码注释使用 {#     #} ,用这种语法的注释不能跨越多行。如果要实现多行注释,可以使用`` {% comment %}`` 模板标签,就像这样:

    {% comment %}
    This is a
    multi‐line comment
    {% endcomment %}

    10、按指定的格式字符串参数格式化 date 或者 datetime 对象, 范例: {{ pub_date|date:"F j, Y" }}

    11、模板目录设置:

    import os.path
    TEMPLATE_DIRS = (
        os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),
    )

    12、使用 render_to_response()

    from django.shortcuts import render_to_response
    import datetime
    def current_datetime(request):
        now = datetime.datetime.now()
        return render_to_response('current_datetime.html', {'current_date': now})

    13、对子模板目录树的深度没有限制,想要多少层都可以。

    return render_to_response('dateapp/current_datetime.html', {'current_date': now})

    14、include 模板标签:{% include 'nav.html' %}或者{% include "nav.html" %}

    15、查看数据模型的SQL语句 python manage.py sqlall app1 app2  >sqlfile

    16、设置字段可选:

    字符型:email = models.EmailFeild(blank = True)

    日期型、时间型和数字型:publication_date = models.DataField(blank = True, null = True)

    17、给字段名称添加标签

    email = models.EmailField('邮箱', blank = True)

    特例:ManyToManyField和ForeignKey字段

    authors = models.ForeignKey(Author,verbose_name = '作者')

    18、如果你在django model里定义了instime = models.DateTimeField('注册时间', auto_now_add=True)
    那么它默认会给instime字段设置一个日期时间的格式形式,
    比如:2006-10-25 14:30:59这样我们在model里调用save的话,
    他会自动添加到数据里去

  • 相关阅读:
    python连接集群mongodb,封装增删改查
    selenium截屏操作(也支持截长图)
    ant生成jmeter测试报告没有数据【已解决】
    论自动化如何提高测试工作效率
    研究显示情商高的人比智商高的可怕多了
    提高程序员职场价值的10大技巧
    革命就是请客吃饭(案例分析吧)
    开发者应该了解的API技术清单!
    陈天:如何快速掌握一门技术
    程序员如何参与创业
  • 原文地址:https://www.cnblogs.com/catmelo/p/2318516.html
Copyright © 2011-2022 走看看