Django实例----简单的博客

这个文档是参考一个网络上的实例,里面添加了自己的一些分析和补充。


建立工程,项目

$ django-admin startproject my_project
$ python manage.py startapp eblog

创建 应用的 models

修改 eblog/models.py, 

1 在数据库里建立一个2维表格。

2 修改admin页面的显示列表。

from django.db import models

# Create your models here.
from django.contrib import admin

class BlogPost(models.Model):
    title = models.CharField(max_length = 150)
    content = models.TextField()

class BlogPostAdmin(admin.ModelAdmin):
    list_display = ('title' , 'content' )

admin.site.register(BlogPost, BlogPostAdmin)

创建一个视图文件

修改eblog/views.py。
1 使用render()方式进行http的反馈。
2 render()动态填写archive.html模版

from django.template import loader,Context
from django.http import HttpResponse
from eblog.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))

配置工程

my_project/settings.py

1 在工程里注册APP

2  配置网页模版的路径

INSTALLED_APPS = [
    'eblog',

TEMPLATES = [
    {
        'DIRS': [os.path.join(BASE_DIR,'templates'),],

配置链接反馈

my_project/urls.py
from django.conf.urls import url
from django.contrib import admin

admin.autodiscover()
from eblog.views import archive

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^eblog/', archive),
]

网页模版代码:

archive.html

{% extends "base.html" %}
{% block content %}
{% for post in posts %}
<h1> {{post.title}}</h1>
<p> {{ post.content }} </p>
{% endfor %}
{% endblock %}

base.html

<html>
    <style type="text/css">
        body {color:#edf; background:#453; padding:0 5em; margin:0 }
        h1 {padding:2em 1em; background:#675 }
        h2 {color:#bf8; border-top:1px dotted #fff; margin-top:2em }
        p { margin:1em 0}
    </style>

    <body>
        <h1><center> Hong 's Blog </center> </h1>
        {% block content %}
        {% endblock %}
    </body>
</html>

测试





.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章