文档章节

Django+SAE个人博客 五

卜星星
 卜星星
发布于 2015/10/15 12:39
字数 788
阅读 42
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

IDE 插件新版本发布,开发效率 “biu” 起来了

近日,Cloud Toolkit正式推出了面向 IntelliJ 和 Eclipse 两个平台的新款插件,本文挑选了其中三个重大特性进行解读,点击文末官网跳转链接,可查看详细的版本说明。 本地应用一键部署到任何...

阿里云云栖社区
32分钟前
6
0
金丝雀发布、滚动发布、蓝绿发布到底有什么差别?关键点是什么?

根据 2017 年的 DevOps 发展报告,高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。 作为技术...

问题终结者
今天
3
0
Kubernetes Client-go Informer 源码分析

几乎所有的Controller manager 和CRD Controller 都会使用Client-go 的Informer 函数,这样通过Watch 或者Get List 可以获取对应的Object,下面我们从源码分析角度来看一下Client go Informe...

阿里云官方博客
今天
4
0
传统IDC部署网站(三)

11. 重置密码 密钥和密码都支持远程登陆, 二选一 两个都可以登陆, 密钥相对于密码来说,相对安全一点 本地登陆无法是用密钥 修改密码 root 用户 passwd root 修改普通用户 passwd usernam...

miko0089
今天
6
0
bash特性

1.支持别名 alias 2.命令替换 $(COMMANS) 或者 `COMMAND` 3. bash支持的引号: `` :命令替换 "":弱引用,可以实现变量替换 '':强引用,不实现变量替换 4.文件名通配 globbing:(man 7 glo...

忙碌的小蜜蜂
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部