Django项目12
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面板里添加数据
相关内容
- 暂无相关文章
评论关闭