django book学习笔记
Django 学习笔记
Table of Contents
- 1 django学习点滴
1 django学习点滴
- 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'
- 模版中句点的功能 模版中局点可以作为字典查找、属性查找、方法调用、列表类型索引查找。如:{{ foo.bar }}其调用顺序一次为:
- 字典查找 foo['bar']
- 属性查找 foo.bar
- 方法调用 foo.bar()
- 列表类型索引 foo[bar]
系统使用第一个有效类型。这是一种短路逻辑
- 模版中方法调用中使用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 .'
- 模版中避免关键函数的误操作 假设类BankAccount中有delete函数,那么如果模版中有{{ account.delete }}这样的标签,其中 account又是BankAccount的一个实例,模版载入时,account实例将被删除。 要防止这样的事情发送,必须设置该方法的alters_data函数属性_
def delete(self):# Delete the account delete.alters_data = True
使用alters_data后,再次遇到account_.delete标签,delete()方法将不会被执行。
- TEMPLATE_DIRS避免使用绝对路径_
import os.pathTEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'), )
- Python3中用Django, __unicode___应改为___str___
- 当修改models中的表结构时,不能syncdb 这是只有通过删除数据库,再次syncdb 或者手动连接数据库,用sql修改 在做开发时,测试数据最好用sql保存起来,避免删除数据库后麻烦
- post表单csrf保护 解决:
- html页面的form标签后加入{% csrf_token_ %}如:
<form action="" method="post">{% csrf_token %}
- 在对应的视图函数中,替换Context为RequestContext。如:
from django.template import RequestContext render_to_response('contact_form.html', {'form': form}, context_instance=RequestContext(request))
- html页面的form标签后加入{% csrf_token_ %}如:
- pluralize filter form.errors|pluralize 这块,查文档如下: pluralize 使用形式:{{value | pluralize}},或者{{value | pluralize:"es"}},或者{{value | pluralize:"y,ies"}} 意义:如果value不是1,则返回一个复数后缀,缺省的后缀是's',
- 向模版中传值,捕获和字典,是否可以混合使用 可以,用*args, **kwds调试最清楚 当捕获用(?P<name>\s+)时,捕获参数放在kwds中的,否则是放在args中的;而url中添加的字典都是放在kwds中的。 参数的存放位置,在函数中应该是先捕获参数,然后字典参数,因为args都是放在前面。
- 高级视图和URL配置总结 在这章中讲了几个问题,
- 视图的编写方法,主要有两种,
- 一种是视图函数import后直接写在url当中;
- 另一种是视图函数以str的形式表现出来。
- 捕获值传入视图函数,捕获值可以重命名
- url中可以字典传值,视图编程规范中尽量不使用业务逻辑
- 子视图及子视图的传值
- 视图的编写方法,主要有两种,
- 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学习笔记相关推荐
- Django:学习笔记(2)——创建第一个应用
Django:学习笔记(2)--创建第一个应用 创建应用 在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定.Django 自带一个工具,可以帮你生成应用的基础目录结构, ...
- django系统学习笔记
转自:http://hi.baidu.com/derris/item/7ca6013e330563fede2221ab 2010-02-07 00:12 django系统学习笔记--(1)hello ...
- django+xadmin学习笔记
第1章 强力django+杀手级xadmin 打造上线标准的在线教育平台-导学 课程简介和学习安排 1-1 强力django+杀手级xadmin 打造上线标准的在线教育平台 第2章 开发环境搭建-li ...
- Django基础学习笔记:初识MTV模式
文章目录 一.Django概述 (一)Django简史 (二)MTV框架模式 (三)Django与WSGI 二.Django案例演示 (一)创建PyCharm项目 (二)安装Django应用框架 (三 ...
- The Definitive Guide To Django 2 学习笔记(八) 第四章 模板 (四)基本的模板标签和过滤器...
标签 下面的部分概述了常见的Django标签. if/else {%if%} 标签 对一个变量值进行测试,如果结果为true,系统将会显示在{%if%} 和 {%endif%}之间的一切,看个例子: ...
- Django框架学习笔记(一)
命令行创建项目: pip install django django-admin startproject mysite cd mysite python manage.py runserver 12 ...
- 【Django】创建项目及框架介绍,学习笔记(一)
[学习教程] 1.Django基础教程:https://code.ziqiangxuetang.com/django/django-tutorial.html 2.Django博客:http://ww ...
- django 学习笔记
django 学习笔记 启动虚拟机: workon bj18_py3 创建一个项目: django-admin.py startproject mysite 启动开发用服务器:从外层项目 mysite ...
- python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目
文章目录 Django项目:学习笔记web网页 项目部署 参考 自己部署的网站,还是小有成就感的,毕竟踩过很多坑,实战技能也有些许进步. 网站链接:http://lishizheng.herokuap ...
- 分享:Django学习笔记(4)---ManyToMany 添加、删除关联、查询
Django学习笔记(4)---ManyToMany 添加.删除关联.查询 http://my.oschina.net/u/572994/blog/105280
最新文章
- “数学不行,干啥也不行!”骨灰级程序员:其实你们都是瞎努力
- 树莓派python3_树莓派4没有python3怎么办
- 解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误
- 出现“adb不是内部或外部命令,也不是可运行的程序或批量文件。”
- java testng 优化_java+testNG测试框架搭建----jenkins自动化执行
- java wifi监听_Android 监听 WiFi 开关状态
- 生成 oracle 连接串,Generator连接Oracle数据库生成Model报错
- 史上第一代图形浏览器往事
- 第四次作业3 四则运算试题生成
- Android手机投屏后没有声音,安卓手机镜像投屏没有声音解决办法
- Scrum板与Kanban如何抉择?敏捷工具:SHSYdsjgyadtgad
- 二级域名解析配置方法
- TCP原理之:linux网桥
- Matlab:数据分析与多项式计算
- CentOS-8操作系统
- 人大金仓数据库的使用心得
- 2021“载歌在谷”线上春晚震撼来袭!
- Jmeter察看结果树中响应数据显示乱码
- 艾默生质量流量计常见问题及处理
- 六度空间(广度优先搜索)
热门文章
- 数据库E-R图——图书管理系统
- OBS无延迟视频直播完整教程(组图)
- python 3d绘图平面_python 利用matplotlib在3D空间中绘制平面的案例
- mysql必须记住的单词_如何真正记住英语单词?
- 华软计算机网络课程设计任务,计算机网络网络课程设计任务.doc
- 都能看懂的嵌入式linux/android alsa_aplay alsa_amixer命令行使用方法
- 在Android的Termux超级终端下进行内网穿透
- vsmd5错误怎么办_dnf md5文件错误怎么解决,涨知识了
- 设计一个具有大纯时延时间的一阶惯性环节的计算机控制系统,计算机控制课程设计——大纯时延一阶惯性环节温度控制系统...
- php采集cms有哪些,phpcms v9自带采集模块功能体验