Django 学习笔记

Table of Contents

  • 1 django学习点滴

1 django学习点滴

  1. python ./manage.py shell和python -i的区别 通过manage.py会读取环境变量DJANGO_SETTINGS__MODULE_='djbook.settings'(djbook是工程名) 加载settings中的模块

    import os
    os.environ.get('DJANGO_SETTINGS_MODULE')
    'djbook.settings'
    
  2. 模版中句点的功能 模版中局点可以作为字典查找、属性查找、方法调用、列表类型索引查找。如:{{ foo.bar }}其调用顺序一次为:
    1. 字典查找 foo['bar']
    2. 属性查找 foo.bar
    3. 方法调用 foo.bar()
    4. 列表类型索引 foo[bar]

    系统使用第一个有效类型。这是一种短路逻辑

  3. 模版中方法调用中使用silent_variable__failure避免异常_ 当异常类中此属性为True时,可以避免异常抛出,如下:
    >>> t = Template("My name is {{ person.first_name }}.")
    >>> class PersonClass3:
    ...     def first_name(self):
    ...         raise AssertionError, "foo"
    >>> p = PersonClass3()
    >>> t.render(Context({"person": p}))
    Traceback (most recent call last):
    ...
    AssertionError: foo>>> class SilentAssertionError(AssertionError):
    ...     silent_variable_failure = True
    >>> class PersonClass4:
    ...     def first_name(self):
    ...         raise SilentAssertionError
    >>> p = PersonClass4()
    >>> t.render(Context({"person": p}))
    u'My name is .'
    
  4. 模版中避免关键函数的误操作 假设类BankAccount中有delete函数,那么如果模版中有{{ account.delete }}这样的标签,其中 account又是BankAccount的一个实例,模版载入时,account实例将被删除。 要防止这样的事情发送,必须设置该方法的alters_data函数属性_
    def delete(self):# Delete the account
    delete.alters_data = True
    

    使用alters_data后,再次遇到account_.delete标签,delete()方法将不会被执行。

  5. TEMPLATE_DIRS避免使用绝对路径_
    import os.pathTEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),
    )
    
  6. Python3中用Django, __unicode___应改为___str___
  7. 当修改models中的表结构时,不能syncdb 这是只有通过删除数据库,再次syncdb 或者手动连接数据库,用sql修改 在做开发时,测试数据最好用sql保存起来,避免删除数据库后麻烦
  8. post表单csrf保护 解决:
    1. html页面的form标签后加入{% csrf_token_ %}如:

      <form action="" method="post">{% csrf_token %}
      
    2. 在对应的视图函数中,替换Context为RequestContext。如:
      from django.template import RequestContext
      render_to_response('contact_form.html', {'form': form}, context_instance=RequestContext(request))
      
  9. pluralize filter form.errors|pluralize 这块,查文档如下: pluralize 使用形式:{{value | pluralize}},或者{{value | pluralize:"es"}},或者{{value | pluralize:"y,ies"}} 意义:如果value不是1,则返回一个复数后缀,缺省的后缀是's',
  10. 向模版中传值,捕获和字典,是否可以混合使用 可以,用*args, **kwds调试最清楚 当捕获用(?P<name>\s+)时,捕获参数放在kwds中的,否则是放在args中的;而url中添加的字典都是放在kwds中的。 参数的存放位置,在函数中应该是先捕获参数,然后字典参数,因为args都是放在前面。
  11. 高级视图和URL配置总结 在这章中讲了几个问题,
    • 视图的编写方法,主要有两种,

      • 一种是视图函数import后直接写在url当中;
      • 另一种是视图函数以str的形式表现出来。
    • 捕获值传入视图函数,捕获值可以重命名
    • url中可以字典传值,视图编程规范中尽量不使用业务逻辑
    • 子视图及子视图的传值
  12. TEMPLATE_CONTEXT__PROCESSORS在工程settings_.py设置方法 为了保留django默认的变量设置,使用下面的配置方法:
    from django.conf import global_settings
    TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + ("myapp.processor.foos",
    )
    

Date: 2013-08-11 19:26:31 中国标准时间

Author:

Org version 7.8.11 with Emacs version 24

Validate XHTML 1.0

django book学习笔记相关推荐

  1. Django:学习笔记(2)——创建第一个应用

    Django:学习笔记(2)--创建第一个应用 创建应用 在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定.Django 自带一个工具,可以帮你生成应用的基础目录结构, ...

  2. django系统学习笔记

    转自:http://hi.baidu.com/derris/item/7ca6013e330563fede2221ab 2010-02-07 00:12 django系统学习笔记--(1)hello ...

  3. django+xadmin学习笔记

    第1章 强力django+杀手级xadmin 打造上线标准的在线教育平台-导学 课程简介和学习安排 1-1 强力django+杀手级xadmin 打造上线标准的在线教育平台 第2章 开发环境搭建-li ...

  4. Django基础学习笔记:初识MTV模式

    文章目录 一.Django概述 (一)Django简史 (二)MTV框架模式 (三)Django与WSGI 二.Django案例演示 (一)创建PyCharm项目 (二)安装Django应用框架 (三 ...

  5. The Definitive Guide To Django 2 学习笔记(八) 第四章 模板 (四)基本的模板标签和过滤器...

    标签 下面的部分概述了常见的Django标签. if/else {%if%} 标签 对一个变量值进行测试,如果结果为true,系统将会显示在{%if%} 和 {%endif%}之间的一切,看个例子: ...

  6. Django框架学习笔记(一)

    命令行创建项目: pip install django django-admin startproject mysite cd mysite python manage.py runserver 12 ...

  7. 【Django】创建项目及框架介绍,学习笔记(一)

    [学习教程] 1.Django基础教程:https://code.ziqiangxuetang.com/django/django-tutorial.html 2.Django博客:http://ww ...

  8. django 学习笔记

    django 学习笔记 启动虚拟机: workon bj18_py3 创建一个项目: django-admin.py startproject mysite 启动开发用服务器:从外层项目 mysite ...

  9. python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目

    文章目录 Django项目:学习笔记web网页 项目部署 参考 自己部署的网站,还是小有成就感的,毕竟踩过很多坑,实战技能也有些许进步. 网站链接:http://lishizheng.herokuap ...

  10. 分享:Django学习笔记(4)---ManyToMany 添加、删除关联、查询

    Django学习笔记(4)---ManyToMany 添加.删除关联.查询 http://my.oschina.net/u/572994/blog/105280

最新文章

  1. “数学不行,干啥也不行!”骨灰级程序员:其实你们都是瞎努力
  2. 树莓派python3_树莓派4没有python3怎么办
  3. 解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误
  4. 出现“adb不是内部或外部命令,也不是可运行的程序或批量文件。”
  5. java testng 优化_java+testNG测试框架搭建----jenkins自动化执行
  6. java wifi监听_Android 监听 WiFi 开关状态
  7. 生成 oracle 连接串,Generator连接Oracle数据库生成Model报错
  8. 史上第一代图形浏览器往事
  9. 第四次作业3 四则运算试题生成
  10. Android手机投屏后没有声音,安卓手机镜像投屏没有声音解决办法
  11. Scrum板与Kanban如何抉择?敏捷工具:SHSYdsjgyadtgad
  12. 二级域名解析配置方法
  13. TCP原理之:linux网桥
  14. Matlab:数据分析与多项式计算
  15. CentOS-8操作系统
  16. 人大金仓数据库的使用心得
  17. 2021“载歌在谷”线上春晚震撼来袭!
  18. Jmeter察看结果树中响应数据显示乱码
  19. 艾默生质量流量计常见问题及处理
  20. 六度空间(广度优先搜索)

热门文章

  1. 数据库E-R图——图书管理系统
  2. OBS无延迟视频直播完整教程(组图)
  3. python 3d绘图平面_python 利用matplotlib在3D空间中绘制平面的案例
  4. mysql必须记住的单词_如何真正记住英语单词?
  5. 华软计算机网络课程设计任务,计算机网络网络课程设计任务.doc
  6. 都能看懂的嵌入式linux/android alsa_aplay alsa_amixer命令行使用方法
  7. 在Android的Termux超级终端下进行内网穿透
  8. vsmd5错误怎么办_dnf md5文件错误怎么解决,涨知识了
  9. 设计一个具有大纯时延时间的一阶惯性环节的计算机控制系统,计算机控制课程设计——大纯时延一阶惯性环节温度控制系统...
  10. php采集cms有哪些,phpcms v9自带采集模块功能体验