Django 教程

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

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

class Book(models.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** )

class Book(models.Model):

? ? title = models.CharField(max_length=100)

? ? authors = models.ManyToManyField(Author)

? ? publisher = models.ForeignKey(Publisher)

? ? publication_date = models.DateField(**blank=True, null=True** )


修改model上顯示的標簽:verbose_name

class Author(models.Model):

? ? first_name = models.CharField(max_length=30)

? ? last_name = models.CharField(max_length=40)

? ? email = models.EmailField(blank=True, **verbose_name='e-mail'** )


自定義列表:

class Author(models.Model):

? ? first_name = models.CharField(max_length=30)

? ? last_name = models.CharField(max_length=40)

? ? email = models.EmailField(blank=True, verbose_name='e-mail')

? ? **def __unicode__(self):**

? ? ? ? **return u'%s %s' % (self.first_name, self.last_name)**

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容