Django学习笔记 官网教程纠正 代码

原文: 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’,

)

另外在模板中添加验证的令牌字段 :

{% 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\d{4})/’,’year_archive’), ##把year当成形参  
(r’articles/(?P\d{4})/(?P\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-12-05 02:51:01

Django学习笔记 官网教程纠正 代码的相关文章

Django学习笔记 Day One

Time:2016年01月01日21:38:55 Description: 从今天开始我开始写我的Django学习笔记,因为网络上太多太杂乱的文章,不成系统,还有就是太多的培训机构讲述的东西过于简单,没有深入讲解Django,算是自己的一个小笔记吧,主要参考的是Django1.8的官方文档,地址:www.djangoproject.com,一家之言,大神勿喷! Content: Day One. First exploration of django? 我们在Web开发过程中,常常会遇到编写重复

谈谈Python之Django搭建企业级官网(第三篇下部)

转载请注明来源地址和原作者(CFishHome) 前沿 上一篇文章我们学习了URL与视图函数的映射.传递参数的三种方式.转换器的简单使用和include函数分层映射管理.接下来这一篇文章着重介绍Path.re_path.include.reverse.redirect函数的使用和自定义URL转换器.学完这些内容,相信我们对URL和视图都会有了一定的了解和认识.为了让每篇文章具有一定的独立性,我决定每篇文章都重新新建一个项目,便于测试和调试. 预备 首先,我们在Pycharm重新新建一个名为boo

Django 学习笔记(七)数据库基本操作(增查改删)

一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.py 5.同步数据 二.安装IPython方便debug sudo apt-get install ipython3 安装成功后用python manage.py shell 会自动进入Ipython交互解释器中,没有安装Ipython只有前两行代码,只进入到Python shell 中. Python 3.5

Django学习笔记(三)—— 模型 model

疯狂的暑假学习之 Django学习笔记(三)-- 模型 model 参考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # 用什么数据库管理系统 'NAME': '', # 数据库名称,如果用sqlite,要写完整路径 'USER': '', # 如果用sqlite,这个不用写 'PASSWORD': '', # 如果用sqlite,这个不用写

Django学习笔记(五)—— 表单

疯狂的暑假学习之  Django学习笔记(五)-- 表单 参考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path                                 除域名以外的请求路径,斜杠开头                      "/hello/" request.get_host()                      主机名                              

Django学习笔记(二)—— 模板

疯狂的暑假学习之 Django学习笔记(二)-- 模板 参考: <The Django Book> 第四章 一.模板基础知识 1.模板是如何工作的 用 python manage.py shell 启动交互界面(因为manage.py 保存了Django的配置,如果直接python启动交互界面运行下面代码会出错) 输入下面代码 >>> from django import template >>> t = template.Template('My name

Django 学习笔记(六)MySQL配置

环境:Ubuntu16.4 工具:Python3.5 一.安装MySQL数据库 终端命令: sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev 过程中会让你输入用户名(默认root)和密码,输入后按下方向即可跳转到确定按钮,再按Enter sudo netstat -tap | grep mysql检测是否安装成功,当处于 liste

Python框架之Django学习笔记(十七)

Django框架之表单(续二) PS:本博客欢迎转发,但请注明博客地址及作者~ 博客地址:http://www.cnblogs.com/voidy/ <.)#)))≦ 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部分了,不过也够我们平时搭个简易的网站或者个人博客什么的.希望通过这一系列的博文,让大家也从中体会到Django框架的魅力所在,如果很不幸,你没有体会到,只能说明我水

Java Web框架-----------------------struts2(官网教程版HelloWorld)

Java Web框架------------------struts2(官网教程版HelloWorld) 我们都知道Struts是Java Web 常用的三大框架之一,另外还有Spring.Hibernate.学习Struts很有必 要!那么怎么学习呢?我的建议是: 1.对于英语能力还可以的人,学技术我们要从官网文档学起,再结合中文别人所写的论文.博客,视频 等.这样可以达到事半功倍的效果. 2.对于阅读英语稍微吃力的人,我们可以下载有道词典,再来本计算机专业英语书,不懂就查,但是, 我们决不能