• 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的话,
    他会自动添加到数据里去

  • 相关阅读:
    POJ 1860
    Notepad++ 经常使用快捷键 (MEMO)
    SpringMVC现实
    krpano漫游加方向性3D声音(这篇文章已被移到krpano中国网站 krpano360.com)
    DFS PKU 1562
    Java中间(三十五)-----Java详细设置(一个):请指定初始容量设置
    HDU 5052 Yaoge’s maximum profit 光秃秃的树链拆分 2014 ACM/ICPC Asia Regional Shanghai Online
    智课雅思词汇---二十五、-ate
    新东方雅思词汇---8.3、apt
    新东方雅思词汇---7.4、cap
  • 原文地址:https://www.cnblogs.com/catmelo/p/2318516.html
Copyright © 2020-2023  润新知