首页 > 代码库 > 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‘, ) 另外在模板中添加验证的令牌字段 : <form action="" method="POST"> {% csrf_token %} --------------------------------------- Q:提交表单,并对表单验证时出现以下异常: ‘ContactForm‘ object has no attribute ‘clean_data‘ 原因:新版的forms模块已经把clean_data更改成 cleaned_data 解决:把clean_data=http://www.mamicode.com/>cleaned_data>Django 手册 学习 心得 笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。