Django项目12


准备工作
[plain]  
service mysqld start  
create database web11 default charset utf8;  
django-admin.py startproject web12  
django-admin.py startapp news  
templates创建  
admin.py创建  
 
settings
[python]  
DATABASES = {   
    'default': {  
        'ENGINE': 'django.db.backends.mysql',   
        'NAME': 'web12',                   
        'USER': 'root',                       
        'PASSWORD': '',                    
        'HOST': '',                       
        'PORT': '',                      
    }     
}  
  
INSTALLED_APPS = (  
    'django.contrib.auth',  
    'django.contrib.contenttypes',  
    'django.contrib.sessions',  
    'django.contrib.sites',  
    'django.contrib.messages',  
    'django.contrib.staticfiles',  
    'news',  
    'django.contrib.admin',                
)  
models
[python]  
from django.db import models  
  
class Author(models.Model):  
    name = models.CharField(max_length=20)  
    def __unicode__(self):  
        return self.name  
class Book(models.Model):  
    name = models.CharField(max_length=20)  
    authors = models.ManyToManyField(Author)  
    def __unicode__(self):  
        return self.name  
views
[python]  
#coding:utf8  
from blog.models import Author,Book  
from django.shortcuts import render_to_response  
  
books = Book.objects.all()  
authors = Author.objects.all()  
  
def show(req):  
    return render_to_response('show.html',{'books':books,'authors':authors})  
  
def book(req,book_id):  
    book = Book.objects.get(id=book_id)  
    return render_to_response('show.html',{'books':books,'book':book,'authors':authors})  
  
def author(req,author_id):  
    author = Author.objects.get(id=author_id)  
    return render_to_response('show.html',{'authors':authors,'author':author,'books':books})  
 
urls
[python] 
from django.conf.urls.defaults import patterns, include, url   
  
from django.contrib import admin  
admin.autodiscover()  
  
urlpatterns = patterns('',          
    url(r'^author/(\d{1,5})/$','blog.views.author'),  
    url(r'^book/(\d{1,5})/$','blog.views.book'),  
    url(r'^show/$','blog.views.show'),  
    url(r'^admin/', include(admin.site.urls)),  
)  
 
base
[html]  
"UTF-8"?>   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
    <title></title>  
    <style>  
  
        #main{width: 80%;border:1px solid black;margin: 1px auto;}  
        #nav{height: 200px;border:1px solid blue;background-color: yellow;color: blue;}  
        #clear{float: right;}  
        #book{width: 30%;float: left;border:1px solid blue;}  
        #author{width: 65%;float: right;border:1px solid green;}  
        #title{background-color: blue;color: yellow;}  
        a:hover{color: purple;}  
        a:visited{color:green; }  
  
    </style>  
</head>  
<body>  
<div id="main">  
    <div id="nav">  
        {%block nav%}{%endblock%}     
    </div>  
  
    <div id="book">  
        {%block book%}{%endblock%}    
    </div>  
    <div id="author">  
        {%block author%}{%endblock%}      
    </div>  
</div>  
</body>  
</html>  
show
[html]  
{%extends 'base.html'%}  
  
{%block nav%}  
  
    <div id=title>  
    {{book.name}}{{author.name}}<span id='clear'><a href='/show/'>clear</a></span>  
    </div>  
  
    {%for a in book.authors.all%}  
    <li>{{a}}</li>  
    {%endfor%}  
      
    {%for b in author.book_set.all%}  
    <li>{{b}}</li>  
    {%endfor%}    
  
{%endblock%}  
  
{%block book%}  
{%for b in books%}  
<li><a href='/book/{{b.id}}/' >{{b.name}}</a></li>  
{%endfor%}  
{%endblock%}  
  
{%block author%}  
{%for a in authors%}  
<li><a href='/author/{{a.id}}/' >{{a.name}}</a></li>  
{%endfor%}  
{%endblock%}  
收尾工作
[plain]  
python manage.py syncdb  
python manage.py runserver  
admin面板里添加数据  
 

相关内容

    暂无相关文章

评论关闭