Django 手册 学习 心得 笔记

Django学习笔记

4、模板初学中,照书例django book 出现以下异常
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

查Google得:

from django.template import Template,Context
### 加上以下两句
from django.conf import  settings
settings.configure()
t = Template("My name is {{ name }}.")
c = Context({"name":"Stipho"})

t.render(c)

#####################################

第六章,admin 管理学习

按照示例做出现以下情况:

ImportError at /admin/

Exception Value:  No module named urls

url 中的正则是:urlpatterns = patterns(‘‘,(r‘^admin/‘, include(‘django.contrib.admin.urls‘)),)

这是老版本的设置。新版本(1.2.1)中应该这样设置:

在settings.py中设置:

INSTALLED_APPS = (
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.admin‘, ###注意,1.2.1一定要添加
    ‘mydjango.books‘,
)

在urls.py中设置:

添加
from django.contrib import admin

取消注释:
admin.autodiscover()

在url pattern中设置:

urlpatterns = patterns(‘‘,
    (r‘^admin/(.*)‘,admin.site.root),
)

###如需要打开admindoc,则需要以下额外设置:

INSTALLED_APPS中添加:
	‘django.contrib.admindocs‘,
urls.py中注释:
urlpatterns = patterns(‘‘,
	(r‘^admin/doc/‘, include(‘django.contrib.admindocs.urls‘)),
)

另外,还需要python的docutils类库,但windows下尚未找到。
下载地址:http://docutils.sourceforge.net/

汉化后台:
在setting.py里将LANGUAGE_CODE从en-us改为zh-CN 

  Q:可以登录后却发现没有要管理的内容(即手册中所说的“主管理索引”)

A: 在需要管理的app(这里是books)下建立admin.py,将需要管理的模块添加

from mysite.books.models import *
from django.contrib import admin

admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)

并重启server

Q:一不小心删除了管理员用户怎么办?
A:
在你第一次运行 syncdb 时,你很可能被问起是否创建一个 superuser ,如果那时你没有创建 superuser ,
你需要运行 djang/contrib/auth/bin/create_superuser.py 来创建一个admin用户,否则你就不能登录到管理界面里去!方法,如下:

(1)在新版本中(1.2.1)windows下:E:\workspace\mydjango>python manage.py createsuperuser 然后依次输入用户名、邮箱、密码等
(2)在老版本中使用python /path/to/django/contrib/auth/create_superuser.py

参考:http://docs.djangoproject.com/en/1.2/topics/auth/#creating-superusers

##################################

第七章、表单处理

Q:运行例子时

Could not import mydjango.books.views. Error was: cannot import name newforms

A:原因是1.2.1版本的只有forms这个模块,把
from django import newforms as forms 改成 from django import forms 即可!

Q:表单提交的时候出现:

Forbidden (403)

CSRF verification failed. Request aborted.

A:原因是django会对提交的数据进行跨站攻击保护,所以需要表单令牌验证

参考这里:http://docs.djangoproject.com/en/dev/ref/contrib/csrf/

解决办法:在settings.py 找到

MIDDLEWARE_CLASSES = (
    ‘django.middleware.common.CommonMiddleware‘,
    ‘django.contrib.sessions.middleware.SessionMiddleware‘,
    ‘django.middleware.csrf.CsrfViewMiddleware‘,
    ‘django.middleware.csrf.CsrfResponseMiddleware‘, ###添加这句,用于表单令牌验证
    ‘django.contrib.auth.middleware.AuthenticationMiddleware‘,
    ‘django.contrib.messages.middleware.MessageMiddleware‘,
)

另外在模板中添加验证的令牌字段 :
<form action="" method="POST">
    {% csrf_token %}

---------------------------------------
Q:提交表单,并对表单验证时出现以下异常:

‘ContactForm‘ object has no attribute ‘clean_data‘
原因:新版的forms模块已经把clean_data更改成 cleaned_data
解决:把clean_data=>cleaned_data

Q:使用from django.forms import form_for_model会出现:
Error was: cannot import name form_for_model
原因:新版本(1.2.1)中对form的model定义使用了新的名称
解决办法:

参考http://docs.djangoproject.com/en/1.2/topics/forms/modelforms/

from django.forms import ModelForm	###重新定义
class PublisherForm(ModelForm):		###定义元数据
    class Meta:
        model = Publisher

################################################################################################################
第八章
视图重点:带有命名组的url

(r‘articles/(?P<year>\d{4})/$‘,‘year_archive‘), ##把year当成形参
(r‘articles/(?P<year>\d{4})/(?P<month>\d{2})/$‘,‘month_archive‘), # year和month都是形参

函数的定义:
mydjango.views中
# year archive
def year_archive(request,year):
    html = ‘current year is :‘,year
    return HttpResponse(html)

# month archive

def month_archive(request,month,year):
    html = ‘current year and month is :‘,year,‘-‘,month
    return HttpResponse(html)

需要注意的是如果在URLconf中使用命名组,那么命名组和非命名组是不能同时存在于同一个URLconf的模式中的。
如果你这样做,Django不会抛出任何错误,但你可能会发现你的URL并没有像你预想的那样匹配正确

                     如果有任何命名的组,Django会忽略非命名组而直接使用命名组。

§                     否则,Django会把所有非命名组以位置参数的形式传递。

§                     在以上的两种情况,Django同时会以关键字参数的方式传递一些额外参数
时间: 2024-10-08 11:42:13

Django 手册 学习 心得 笔记的相关文章

django手册学习 二

django 各种常用模块: sudo pip install django-celery sudo pip install django-compressor sudo pip install django-bootstrap-form sudo pip install sorl.thumbnail sudo pip install fancy_cache 'djcelery',#处理多任务 待了解.'compressor', #cs js的压缩插件.'bootstrapform', 'sor

《Python学习手册》读书笔记【转载】

转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我在这里推荐了几篇文章,有其他语言编程经验的人简单看一看就可以很快地开始编写Python程序了. 黑体表示章节, 下划线表示可以直接在原文对应位置查到的专有技术名词. 原书

在马哥linux运维学院学习心得

题目:在马哥linux运维学院学习心得 姓名:谭龙 班级:M18 学号:26 时间:2016-02-29--2016-06-02(正常毕业时间预计在7月中上旬)   正文: 个人基本情况: 我是一名在校的即将毕业的大四学生,毕业时间为2016.7.专业为矿物加工工程专业,纯正的四川-广安人(邓小平故居就在那).因找不到工作,加上自己也不知道干什么,在堂弟的推荐下,来参加了马哥linux运维学院的学习:怀揣着一颗对计算机懵懂的心,开始涉足从未接触过了linux. 个人收获与心理变化: 在一开始接触

第一篇大数据学习心得

之前未习惯发布学习心德博文,后续会采用这种方式发布学习心得,希望能够很好的督促自己. 计划会按scala,Hadoop,Spark的顺序去学习. 刚学scala的时候,眼前一亮,这语法跟python,java很像啊,刚好两者很熟悉,偷笑,后面果然学的得心应手.今天就不发表具体的技术内容.反正王学林老师的视屏讲解很好,声音非常富有感染力,想开小差都比较难,呵呵,话语精炼,个人较喜欢的风格,这里说下这段时间学习scala的小心得?,视频学完一章紧接着进行敲代码,调试,最后记笔记,对,记笔记,不一定是

计算机学习心得

计算机学习心得体会 心得一:计算机学习心得体会 21世纪是一个信息经济时代,为适应时代的发展,作为一名当代大学生,所受的社会压力将比任何时候的大学生都要来得沉重,因此在校期间,我们必须尽可能的利用好学习时间,尽可能地学习更多的知识和能力,学会创新求变,以适应社会的需要. 毕竟,不管将来是要从事什么样的相关行业,都需要掌握较为全面的计算机知识,因为小到计算机的组装维修,大到服务器的维护与测试,知道的更多更全面,那么对于自己以后找工作以及参加工作帮助就越大.在知识经济时代,没有一个用人单位会傻到和知

马舒婕:GIT操作与学习心得

参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 1.在Windows上安装Git 1)下载msysgit安装程序,下载地址:http://pan.baidu.com/s/1liyU: 2)按照默认选项完成安装: 3)在开始菜单里找到“Git->Git Bash”,弹出如下命令窗口,说明安装成功. 2.远程仓库 1)注册GitHub账号(已有账号): 2)创建SSH Key:

windows类书的学习心得(转载)

原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千,很多陌生的出版社,很多陌生的作者,很多陌生的译者,书名也是越来越夸张,什么××天精通××,精通××编程, ××宝典等等,书的印刷质量真的很好,纸张的质量也是今非昔比啊,但书的内容好象却是越来越让人失望,也许是我老了,我的思想我的观念已脱离现实社会,也许是外面的世界变化得太快,我编程数月,出去一走,

《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)

<Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h>文件中的常量. 通过cat 命令查看: [email protected]:~/Code/tlpi$ cat /usr/include/limits.h /* Copyright (C) 1991, 1992, 1996, 1997, 1998, 1999, 2000, 2005 Free Software

《Linux/Unix系统编程手册》读书笔记8 (文件I/O缓冲)

<Linux/Unix系统编程手册>读书笔记 目录 第13章 这章主要将了关于文件I/O的缓冲. 系统I/O调用(即内核)和C语言标准库I/O函数(即stdio函数)在对磁盘进行操作的时候都会发生缓冲.通过缓冲可以在一定程度上将用户空间与实际的物理设备分离,还可以减少内核访问磁盘的次数. 先来看看关于内核缓冲区高速缓冲:read和write调用在对磁盘文件进行操作的时候不会直接访问磁盘,如下图所示. 例如:write(fd, "abc", 3) write调用会将"