文档讲得太繁琐了 简洁下:
创建一个项目:
django-admin startproject mysite
穿件对应表:默认后面会去设置数据库,这里只是默认设置其实可以省略
python manage.py migrate
运行开发服务器:
$ python manage.py runserver
创建模型应用:
$ python manage.py startapp polls
编辑模型文件:polls/models.py
from django.db import modelsclass Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30)
模型举例而已。
激活模型应用:修改settings.py文件
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', )
包含应用:
$ python manage.py makemigrations polls
执行SQL:
$ python manage.py sqlmigrate polls 0001
再创建模型:
$ python manage.py migrate
模型详细信息可参照:
http://python.usyiyi.cn/django/topics/db/models.html
视图:
配置一个简单的url:编辑 url.py文件
from django.conf.urls import url from . import viewsurl patterns = [ url(r'^articles/2003/$', views.special_case_2003), url(r'^articles/([0-9]{4})/$', views.year_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail), ]
/articles/2005/03/ 请求将匹配列表中的第三个模式。Django 将调用函数views.month_archive(request, '2005', '03')。
/articles/2005/3/ 不匹配任何URL 模式,因为列表中的第三个模式要求月份应该是两个数字。
/articles/2003/ 将匹配列表中的第一个模式不是第二个,因为模式按顺序匹配,第一个会首先测试是否匹配。请像这样自由插入一些特殊的情况来探测匹配的次序。
/articles/2003 不匹配任何一个模式,因为每个模式要求URL 以一个反斜线结尾。
/articles/2003/03/03/ 将匹配最后一个模式。Django 将调用函数views.article_detail(request, '2003', '03', '03')。
包含url:
url(r'^polls/', include('polls.urls', namespace='author-polls', app_name='polls')),
from django.conf.urls import include, url from . import views polls_patterns = [ url(r'^$', views.IndexView.as_view(), name='index'), url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'), ] url(r'^polls/', include((polls_patterns, 'polls', 'author-polls'))),
视图函数:
from django.http import HttpResponse, HttpResponseNotFounddef my_view(request): # ... if foo: return HttpResponseNotFound('<h1>Page not found</h1>') else: return HttpResponse('<h1>Page was found</h1>')
404异常:
from django.http import Http404 from django.shortcuts import render_to_response from polls.models import Polldef detail(request, poll_id): try: p = Poll.objects.get(pk=poll_id) except Poll.DoesNotExist: raise Http404("Poll does not exist") return render_to_response('polls/detail.html', {'poll': p})
其他表单的 可以自己写
后期继续更新