MVC:models.py views.py urls.py books.html
# models.py (the database tables)
from django.db import models
class Book(models.Model):
name = models.CharField(max_length=50)
pub_date = models.DateField()
# views.py (the business logic)
from django.shortcuts import render_to_response
from models import Book
def latest_books(request):
book_list = Book.objects.order_by('-pub_date')[:10]
return render_to_response('latest_books.html', {'book_list': book_list})
# urls.py (the URL configuration)
from django.conf.urls.defaults import *
import views
urlpatterns = patterns('',
(r'^latest/$', views.latest_books),
)
# latest_books.html (the template)
Books
{% for book in book_list %}
{{ book.name }}
{% endfor %}
django.contrib
運作 python manage.py syncdb 。這一步将生成管理界面使用的額外資料庫表。 當你把'django.contrib.auth'加進INSTALLED_APPS後,第一次運作syncdb指令時, 系統會請你建立一個超級使用者。 如果你不這麼作,你需要運作python manage.py createsuperuser來另外建立一個admin的使用者帳号,否則你将不能登入admin (提醒一句: 隻有當INSTALLED_APPS包含'django.contrib.auth'時,python manage.py createsuperuser這個指令才可用.)
将自己的模型加入預設DB
from django.contrib import admin
from mysite.books.models import Publisher, Author, Book
admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)
model
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
def __unicode__(self):
return self.title
model允許預設值:
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField(**blank=True** )
publication_date = models.DateField(**blank=True, null=True** )
修改model上顯示的标簽:verbose_name
email = models.EmailField(blank=True, **verbose_name='e-mail'** )
自定義清單:
email = models.EmailField(blank=True, verbose_name='e-mail')
**def __unicode__(self):**
**return u'%s %s' % (self.first_name, self.last_name)**