DjangoWeb: 快速搭建Blog

参考自: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 %}

再次刷新页面

原文地址:https://www.cnblogs.com/zzblee/p/4722113.html