使用django搭建简单的博客程序(三)

2013年5月24日 | 分类: Network, Python | 标签:

  这一篇讲的东西没什么技术含量,主要就是各种插件。老实说,也许翻翻各种官方文档也就足够了,这里列出的是一些通常使用,好评如潮的插件—-也许……很多都有自己的站点和文档。你知道的,有站点的总比没站点的靠谱。

  第一个要说的插件是grappelli,这是一个后台美化的插件。嗯哼,也许你的前端做得足够的好,但是一个难看的django自带admin dashborad也足以让你的写作欲望烟消云散,这个插件可以让你的后台不那么难看。你可能想自己写一个视觉观感良好的模板,这是可以的,具体来说,你需要在你的templates文件夹中建一个admin文件夹,然后建一个和应用同名的文件夹,再把模板放进去。不过等等,这篇文章的阅读对象是如笔者这样对页面苦手的家伙,这样复杂的事似乎做不了?

  grappelli相当傻瓜化,安装方式的话,有兴趣可以自己阅读官方文档,快速入门。或者跟着我下面这些步骤慢慢做。

  首先你需要安装pip,一般而言这东西都会在linux的包管理器里面。我手上只有arch系统,arch的话,这东西的名字叫 python2-pip,安装就好了。调用这东西的命令不是通常的pip了,而是pip2,这个只要用arch的人都明白。

  输入这个在本机安装greppelli:

    pip install django-greppelli

  当然你也可以到github里面去git clone下来,这个我就不细表了。

  然后是把插件安装到django里面。

  打开settings.py,熟门熟路找到 INSTALLED_APPS项,加入一项 ‘grappelli’ ,不过有点需要说明的是,请务必保证 ‘grappelli’ 在 ‘django.contrib.admin’之前。

  然后在urls.py里面加上一项:

    urlpatterns = patterns(”,

            (r’^grappelli/’,include(‘grappelli.urls’)),

  最后输入 python manager.py collectstatic生成media文件。

  现在就安装好了,看看界面是不是好了很多?

  grappelli也提供了定制功能,个人认为这个定制还是有点弱……有两种方法,第一种是django的admin.modelAdmin那样的定制,个人不太喜欢就算了……另一种是Dashboard定制,挺容易的,就简略说说。

  第一步照样是熟悉的配置环节:

  在熟得不能再熟的INSTALLED_APPS里面,加入 ‘grappelli.dashboard’这一项,也请确保这东西在 ‘grappelli’以及’django.contrib.admin’之前。

  在settings.py里面把这一坨东西弄进去,哪里都行,推荐在TEMPLATE_DIR后面,这样比较好找。

 

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.request",
    "django.core.context_processors.i18n",
    'django.contrib.messages.context_processors.messages',
)

 

  运行python manage.py customdashboard

  这个会在你的根目录生成一个叫做dashboard的py文件。记住一点,你先把这玩意移动到blog/blog 里面。这是最让人郁闷的一点,官方文档没写,我当时折腾了好久。

  再打开settings.py 添上一句:

    GRAPPELLI_INDEX_DASHBOARD = ‘yourproject.dashboard.CustomIndexDashboard’

  ok,dashboard就配置好了。再看看你的管理界面,是不是变了不少?

  可以通过修改dashboard.py去定制样式,具体的,你可以尝试删删里面的几个类之中的一两个,看看有什么变化然后你就懂了……

  grappelli就这样了。

 

  如果你像我一样恨不得世界上所有的文本编译器都可以直接解析markdown语法的话,你就会自然地希望你自己现在弄的这玩意也可以支持markdown。事实上,django自带支持,不过首先需要你安装python-markdown。

  arch用户也是,直接无脑 sudo pacman -S python2-mardown就好了……其他linux系统的用户的话,请先查一下包管理器中有没有相关的包,没有的话,github上去clone一个吧,输入 python markdown,第一个就是。

  启用markdown支持很简单,在settings.py里面加入一项 ‘django.contrib.markup’,然后在需要开启markdown的template里面,在开头添加一项 {% load markup %}就好。

  这里提醒一下,python-markdown语法并不是和标准markdown语法兼容的,代码书写是空四个格,然后:::python 这样。

  有了markdown支持自然需要代码着色,这时候需要用的插件是pygments。这东西比较恼人的是需要用easy_install来安装。不过其实你只要用py2.4以上,这玩意都是带着的……不要想太多 sudo easy_isntall Pygments 无脑安装就挺好。

  然后看看这篇文章吧,Pygments使用,这个作者讲得挺详细的。

  如果刷新界面,发现代码还没有着色的话,断开runserver再启动通常就会好。

  但是即使用了上面的东西,还是会发现书写效果不太舒心,把编辑器换一个吧。

  DPress那个项目的作者用的是epiceditor,但是他用的那个有点问题,当有多个TextField的时候,只会显示第一个。后来又找到一个django-eoiceditor,倒是可以解决上面的问题,但是新的问题是不能把值传到数据库……所以我也就和帅气的epiceidor说了再见,现在用的是pagedown,github页面是这个:pagedown。效果不算难看,支持markdown,保存什么的也没问题。安装使用方法也很简单 pip install django-pagedown,然后在INSTALLED_APPS里面把pagedown添加进去就好了。

  ok,基本的博客就成型了,后面是用disqus管理评论什么的,这部分还没开始做,不过估计很快。最近会添加点功能什么的,然后估计项目就扔着了。有时候看看,基本就没怎么写代码,这时候就感觉django不太舒服了,太庞大,不太自由呢。下次试试flask吧,轻量级才用着舒心不是。

   

目前还没有任何评论.