Django 1.6网站开发学习笔记:数据库配置与错误修复
"这是一份关于使用Django 1.6进行网站开发的学习笔记,主要针对《Learing Website Development with Django 1.6》一书的内容进行了修改和补充,适用于在Linux环境下使用UTF8编码阅读。笔记包含了数据库配置、应用安装、表单处理和模板视图等多个关键知识点。" 在Django 1.6中,数据库配置是一个重要的部分。书中提到了将`DATABASE_NAME='bookmarksdb'`更改为 `'NAME': os.path.join(BASE_DIR, 'bookmarksdb.sqlite3')`,这意味着在设置数据库时,不再直接指定数据库名称,而是使用Django的BASE_DIR变量来确定数据库文件的完整路径,这样能更好地实现项目的可移植性。 在应用安装方面,笔记中展示了如何在`INSTALLED_APPS`列表中添加自定义应用。原来的代码是`'django_bookmarks.bookmarks'`,修改后变为`'bookmarks'`,简化了引用方式,只需提供应用的名称即可,这是因为Django会自动查找与应用名同名的子目录。 在表单处理中,注意到两个地方都提到了`{% csrf_token %}`。这个模板标签是防止跨站请求伪造(CSRF)的安全措施,必须在POST表单中包含,否则会导致403错误。例如:`<form method="post" action=".">{% csrf_token %}`。同时,`maxlength`属性在Django模板语言中应该写作`max_length`,如`<input type="text" maxlength=200>`应改为`<input type="text" max_length=200>`,这与Django模型字段的`max_length`参数相对应。 在模板视图方面,笔记指出`direct_to_template`已经在Django 1.5中被弃用,推荐使用类基视图(Class-based view)。原本的代码使用了`direct_to_template`,现在要替换为`TemplateView.as_view()`。例如,URL配置中的这一段: ```python url(r'^register/success/$', direct_to_template, {'template': 'registration/register_success.html'}), ``` 应改为: ```python url(r'^register/success/$', TemplateView.as_view(template_name='registration/register_success.html')), ``` 这表明了向更现代、更灵活的Django视图模式的转变。 总结来说,这份笔记涵盖了Django 1.6中的核心概念,包括数据库配置、应用注册、表单处理和模板视图的更新,对于初学者或正在升级项目到Django 1.6的开发者来说,具有很高的参考价值。通过这些知识点,读者可以更好地理解和实践Django框架,构建健壮且安全的Web应用。
== Ch2
p19
DATABASE_NAME = 'bookmarksdb'
-->
'NAME': os.path.join(BASE_DIR, 'bookmarksdb.sqlite3')
== Ch3
p30
INSTALLED_APPS = (
'django_bookmarks.bookmarks',
)
-->
INSTALLED_APPS = (
'bookmarks',
)
p33
maxlength=200 --> max_length=200
== Ch4
p46
<form method="post" action=".">
{% csrf_token %} -----------------------> 添加,否则出错403。
<p><label for="id_username">Username:</label>
self.clean_data['xxxx'] --> self.cleaned_data['xxx']
p61
<form method="post" action=".">
{% csrf_token %} -----------------------> 添加,否则出错403。
{{ form.as_p }}
p63
#direct_to_template has been deprecated. In django 1.5 try using a Class based view in urls.py
from django.views.generic.simple import direct_to_template
--->
from django.views.generic import TemplateView
------------------------------------------------------
url(r'^register/success/$', direct_to_template, { 'template': 'registration/register_success.html' }),
--->
url(r'^register/success/$', TemplateView.as_view(template_name='registration/register_success.html'),
{ 'template': 'registration/register_success.html' }),
== Ch5
p68
name = models.CharField(maxlength=64, unique=True)
-->
name = models.CharField(max_length=64, unique=True)
p73
clean_data --> cleaned_data
剩余5页未读,继续阅读
- 粉丝: 12
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展