开始学习django了,我列出一些学习django的资料。
我觉得
http://www.woodpecker.org.cn/obp/django/django-stepbystep/newtest/doc/这个地方的教程很好,教程上有些东西是老版本的,可能会编译不通过,或者是达不到预期的效果,我会在接下来的时间给出新的用法,随着我的试验我会慢慢给出新的用法。补充一点,这里我的工程名是djproject,可以根据自己的实际环境换。
Note:红色是老用法,蓝色是新用法,其他的算是旁白,哈哈
第六章
3 编辑 wiki/models.py中
from django.db import models
# Create your models here.
class Wiki(models.Model):
pagename = models.CharField(maxlength=20, unique=True)
content = models.TextField()
新的用法是
pagename = models.CharField(max_length=20, unique=True)
就是maxlength变成了max_length
6 修改 wiki/views.py
import re
r = re.compile(r'\b(([A-Z]+[a-z]+){2,})\b')
def process(template, page):
"""处理页面链接,并且将回车符转为<br>"""
t = loader.get_template(template)
content = r.sub(r'<a href="/wiki/\1">\1</a>', page.content)
content = re.sub(r'[\n\r]+', '<br>', content)
c = Context({'pagename':page.pagename, 'content':content})
return HttpResponse(t.render(c))
新的用法是
content = re.sub(r'[\r]+', '<br>', content) #linux下的回车符
Context({'pagename':page.pagename,'content':content},autoescape=False)#取消django的自动转义
同时我说下这里可以自己添加异常处理;比如
try:
page = Wiki.objects.get(pagename='FrontPage')
except ObjectDoesNotExist:
print "doesn't exist"
第七章
3 修改 address/models.py
#coding=utf-8
from django.db import models
# Create your models here.
class Address(models.Model):
name = models.CharField('姓名', maxlength=6, unique=True)
gender = models.CharField('性别', choices=(('M', '男'), ('F', '女')),
maxlength=1, radio_admin=True)
telphone = models.CharField('电话', maxlength=20)
mobile = models.CharField('手机', maxlength=11)
新的用法为
#coding=utf-8
from django.db import models
# Create your models here.
class Address(models.Model):
name=models.CharField('姓名',max_length=6,unique=True)
gender=models.CharField('性别',choices=(('M','男'),('F','女')),max_length=1)
telphone=models.CharField('电话',max_length=20)
mobile=models.CharField('手机',max_length=11)
from django.contrib import admin
class AddressAdmin(admin.ModelAdmin):
model=Address
radio_fields={'gender':admin.VERTICAL}
admin.site.register(Address,AddressAdmin)
6 修改 urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns('',
# Example:
# (r'^testit/', include('newtest.apps.foo.urls.foo')),
(r'^$', 'newtest.helloworld.index'),
(r'^add/$', 'newtest.add.index'),
(r'^list/$', 'newtest.list.index'),
(r'^csv/(?P<filename>\w+)/$', 'newtest.csv_test.output'),
(r'^login/$', 'newtest.login.login'),
(r'^logout/$', 'newtest.login.logout'),
(r'^wiki/$', 'newtest.wiki.views.index'),
(r'^wiki/(?P<pagename>\w+)/$', 'newtest.wiki.views.index'),
(r'^wiki/(?P<pagename>\w+)/edit/$', 'newtest.wiki.views.edit'),
(r'^wiki/(?P<pagename>\w+)/save/$', 'newtest.wiki.views.save'),
# Uncomment this for admin:
(r'^admin/', include('django.contrib.admin.urls')),
)
新的修改为
1 from django.conf.urls.defaults import *
2
3 # Uncomment the next two lines to enable the admin:
4 from django.contrib import admin
5 admin.autodiscover()
6
7 urlpatterns = patterns('',
8 # Example:
9 # (r'^djproject/', include('djproject.foo.urls')),
10 (r'^$','djproject.helloworld.index'),
11 # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
12 # to INSTALLED_APPS to enable admin documentation:
13 # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
14 (r'^add/$','djproject.add.index'),
15 (r'^list/$','djproject.list.index'),
16 (r'^csv/(?P<filename>\w+)/$','djproject.csv_test.output'),
17 (r'^login/$','djproject.login.login'),
18 (r'^logout/$','djproject.login.logout'),
19 (r'^wiki/$','djproject.wiki.views.index'),
20 (r'^wiki/(?P<pagename>\w+)/$','djproject.wiki.views.index'),
21 (r'^wiki/(?P<pagename>\w+)/edit/$','djproject.wiki.views.edit'),
22 (r'^wiki/(?P<pagename>\w+)/save/$','djproject.wiki.views.save'),
23 (r'^wikidele/$','djproject.wiki.views.dele'),
24
25 # Uncomment the next line to enable the admin:
26 (r'^admin/(.*)', admin.site.root),
27 # (r'^admin/',include('django.contrib.admin.urls')),
7 增加超级用户
manage.py shell
>>> from django.contrib.auth.create_superuser import createsuperuser
>>> createsuperuser()
修改为
python manage.py createsuperuser就这个一个命令就可以了