__init__.py # 视为一个python包
models.py # 编写django数据类,创建数据库等
输入 http://127.0.0.1:8000/blog, 即可看到文章显示
models.py # 编写django数据类,创建数据库等
views.py # 编写视图函数,从数据中获取数据显示,映射到模板
1.在models.py中输入:
from django.db import models
from django.contrib import admin
class BlogPost(models.Model):
title=models.CharField(max_length=150)
body=models.TextField()
timestamp=models.DateTimeField()
2.
创建数据库对应表
执行python manage.py syncdb # 因为Django数据库是ORM对象关系映射,通过models.py定义的类,创建数据库对应表
3.开通链接数据库的管理界面
urls.py 中添加:(r'^admin/', include(admin.site.urls)),
4.修改models.py,在admin注册models
在后面添加 :admin.site.register(BlogPost)
5.开启内建服务器,在127.0.0.1:8000/admin/,输入admin用户名和密码,通过界面在blog posts中填加数据.
6.定制admin后台,添加BlogPostAdmin修改models.py,并在admin中注册:
from django.db import models
from django.contrib import admin
class BlogPost(models.Model):
title=models.CharField(max_length=150)
body=models.TextField()
timestamp=models.DateTimeField()
class BlogPostAdmin(admin.ModelAdmin):
list_display=('title','timestamp')
admin.site.register(BlogPost,BlogPostAdmin)
7.
修改view.py,编写视图函数,渲染模板:
from django.template import loader, Context
from django.http import HttpResponse
from mysite.blog.models import BlogPost
def archive(request):
posts=BlogPost.objects.all()
t=loader.get_template("archive.html")
c=Context({'posts':posts})
return HttpResponse(t.render(c))
8.
建立template模板
在templates/archive.html,使用Django模板块标签,他将模板渲染到序列中的每个元素
{% extends "base.html" %}
{% block content %}
{% for post in posts %}
<h2>{{post.title}}</h2>
<p>{{post.timestamp|date:"F j, Y"}}</p>
<p>{{post.body}}</p>
{% endfor %}
{% endblock %}
9.
激活blog url映射,在urls.py中:
from django.conf.urls import patterns, include, url
from ybsmt.views import *
from django.contrib import admin
admin.autodiscover()
from django.conf import settings
urlpatterns = patterns('',
(r'^blog/', archive),
)
if settings.DEBUG is False:
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.STATIC_ROOT,
}),
)
输入 http://127.0.0.1:8000/blog, 即可看到文章显示