文档章节

Django+SAE个人博客 五

卜星星
 卜星星
发布于 2015/10/15 12:39
字数 788
阅读 40
收藏 0

参考资料:Django Web开发指南.pdf 2009年5月第1版

以下内容中,所有提到jackerb都是我自己的项目名称,所以需要根据自己的来设定。


上节我们已经可以编辑自己的博客了,那么这一节就把我们的博客显示给别人来看。


  1. 在blog目录下创建目录templates,然后编辑两个文件,base.html homepage.html

blog/templates/base.html文件的内容如下:

<html>
    <style type="text/css">
        body { color: #efd; 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>全栈之路</h1>
        {% block content %}
        {% endblock %}
    </body>
</html>

blog/templates/homepage.html内容如下:

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

把这些新增加的和修改了的,svn到SAE上。

2. 在blog/views.py中创建视图homepage,增加如下内容:

from django.template import loader, Context
from django.http import HttpResponse
from jackerb.blog.models import Blog

def homepage(request):
    posts = Blog.objects.all()
    t = loader.get_template("homepage.html")
    c = Context({ 'posts': posts })
    return HttpResponse(t.render(c))

3. 在blog/urls.py中增加url设置,在django1.5创建的blog中没有urls.py,我还没有查为什么,所以我自己创建这个文件,并写下如下内容:

from django.conf.urls.defaults import *
from jackerb.blog.views import homepage

urlpatterns = patterns('',
    url(r'^$', homepage),
)

4. 这时候再去设置jackerb中的urls.py,增加如下内容:

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'oncedo.views.home', name='home'),
    # url(r'^oncedo/', include('oncedo.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
    url(r'^blog/', include('jackerb.blog.urls')),
)

这时候就可以把所有修改的和增加的都提交到SAE上,就可以通过http://jackerb.sinaapp.com/blog/,来访问了

我在弄这块的时候,有好些地方都打错了字母之类的错误,通过出错的提示都一一的改正过来了,就可以看到自己的博客了。


5. 现在看到的博客排序是按时间的顺序排列的,而我们一般都是逆序排列,也就是最后写的博文在最前面,现在就来设置一下,修改blog/models.py文件,如下:

from django.db import models
from django.contrib import admin

class Blog(models.Model):
    title = models.CharField(max_length=200)
    category = models.CharField(max_length=200)
    body = models.TextField()
    timestamp = models.DateTimeField()

    class Meta:
        ordering = ('-timestamp',)

class BlogAdmin(admin.ModelAdmin):
    list_display = ('title', 'category', 'timestamp')

admin.site.register(Blog, BlogAdmin)

这是在Blog中增加了一个内嵌类Meta实现的。提交更改到SAE,看看改变。


6. 接下来就是那个资料里说的时间显示的问题了,修改templates/homepage.html,如下:

{% extends "base.html" %}
{% block content %}
{% for post in posts %}
<h2>{{ post.title }}</h2>
<p>{{ post.timestamp|date }}</p>
<p>{{ post.body }}</p>
{% endfor %}
{% endblock %}

再提交改变到SAE,刷新页面就可以看到效果了。


以上内容都是参考《Django Web开发指南》的第二章来做的,建议先在本地试过,再去SAE上部署。


其实现在可以编辑,可以让别人访问,一个最基本的博客就有了,然后就是我们有不同的需求,再去增加不同的内容了。

我会继续改进我的博客的,并且一直保持记录操作过程。

这一节就到这里了。



© 著作权归作者所有

共有 人打赏支持
卜星星
粉丝 27
博文 111
码字总数 68736
作品 0
海淀
程序员
私信 提问
Django+SAE个人博客 七

以后的博客就记录在我自己的个人博客下了,这是第七节的地址: http://jackerb.sinaapp.com/blog/7/ 扫码关注,更多惊喜

卜星星
2015/10/19
37
0
Django+SAE个人博客 四

参考资料:Django Web开发指南.pdf 2009年5月第1版 以下内容中,所有提到jackerb都是我自己的项目名称,所以需要根据自己的来设定。 已经有了admin后台管理了,那么,现在就增加上blog应用,...

卜星星
2015/10/15
54
0
Django+SAE=个人博客 一

本地开发环境: 操作系统:OS X Yosemite Python版本:2.7.6 Django版本:1.5.12 远程: 使用新浪的SAE 参考资料:Django Web开发指南.pdf 2009年5月第1版,根据书中第二章完成,建议先在本地...

卜星星
2015/10/14
114
0
Django+SAE个人博客 九

第九节地址: http://jackerb.sinaapp.com/blog/9/ 扫码,获取更多精彩内容

卜星星
2015/10/19
69
0
Django+SAE个人博客 六

这一节来解决一些我自己的需求。 http://jackerb.sinaapp.com/blog/ 这里一下子把所有博文都显示出来了,并且每个博文的全部内容也都显示出来了,这样不符合我们一般见到的样式,所以先修改博...

卜星星
2015/10/15
80
0

没有更多内容

加载失败,请刷新页面

加载更多

移动端Appium自动化测试框架的优势

众所周知,现在市面上的移动端操作系统已被Android和IOS占领,其中Android的份额更是在80%以上。那么面对市面上林林总总的自动化测试框架和工具,为什么说Appium在自动化测试框架的统治级优势...

程序猿拿Q
27分钟前
1
0
设计模式 之 观察者模式

设计模式 之 观察者模式 场景 场景比较简单,当一个对象的状态发生改变时,自动通知所有依赖(或观察)它的对象。 比如:发布/订阅 原理:发布者存储N个订阅者的对象信息,当发布者发布消息时...

GMarshal
31分钟前
1
0
linux 常用

netstat -tunlp |grep 8080 查看8080 占用 netstat -tunlp 用于查看所有的端口号的进程情况

west_coast
36分钟前
2
0
Bytom信息上链教程

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ##用比原链(Bytom)实现信息上链 很多了解比原链的都知道,比原链是专注...

比原链Bytom
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部