参考自:django 快速搭建blog http://www.cnblogs.com/fnng/p/3737964.html
1.创建工程:
django-admin.py startproject MySite
manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。
settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
urls.py ----- 负责把URL模式映射到应用程序。
2.运行服务:
python manage.py mysite
3.创建blog应用:
python manage.py startapp blog
4.设计你的Model:
class BlogPost(models.Model): #创建博客类,包含博客标题,博客正文,博客创建时间 title=models.CharField(max_length=150) body=models.TextField() timestamp=models.DateTimeField()
创建号Model后,要设置数据库,python自带SQLite
5.同步数据库
python manage.py syncdb
6.在Setting添加一个Blog应用
7.将Model添加到admin后台:
from django.contrib import admin from models import BlogPost # Register your models here. admin.site.register(BlogPost)
8.再次初始化数据库
9.启动服务
------------------------------------------
10 设置 admin的管理界面(决定每个表里面显示的内容,以列表形式展示)
#设置admin的BlogsPost界面 class BlogPostAdmin(admin.ModelAdmin): list_display = ('title','timestamp') admin.site.register(BlogPost,BlogPostAdmin)
11.创建模板
在blog的templates目录(mysite/blog/templates)下面创建html文件
{% for post in posts %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp }}</p> <p>{{ post.body }}</p> {% endfor %}
12.设置模版路径,在setting文件底部添加模版路径
这里一直出错因为我TEMPLATE_DIRS没有大写,之前出错因为没有在setting底部添加模版路径
#template
TEMPLATE_DIRS=( '/home/pxxxy/PycharmProjects/DDjango/MySite/templates' )
13.创建视图函数
把模板添加到视图
# Create your views here. def archive(request): posts=BlogPost.objects.all() #获取数据库里面所有用于普BlogPost对象 t=loader.get_template("archive.html") #加载模版 c=Context({'post':posts})#模版的渲染的数据是一个有字典类,这里是一对键值对 return HttpResponse(t.render(c))
14.创建Blog的URL模式
urlpatterns = patterns('', # Examples: # url(r'^$', 'MySite.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), url(r'^mysite/', archive) )
15.再次启动服务器访问应用就可以
16. 添加样式
创建基础模板,在templates目录下创建base.html模版
<!DOCTYPE html> <html> <style type="text/css"> body{color:#efd; background:#435; padding:0 5em; margin:0} h1{padding:2em lem; background:#675} h2{color:#bf8; border-top:lpx dotted #fff; margin-top:2em} p{margin: lem 0} </style> <body> <h1>梓听</h1> <h3>Yoooohooo!</h3> {% block content %} {% endblock %} </body> </html>
修改archive.html模版,让它引用base.html 模版和它的content块
{% extends "base.html" %} {% block content %} {% for post in posts %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp }}</p> <p>{{ post.body }}</p> {% endfor %} {% endblock %}
再次刷新页面