Giter Site home page Giter Site logo

django_selfblog's Introduction

the5fire的技术博客源码

博客地址: http://the5fire.com

微信号:

image

概述

本博客系统基于Django1.5.1开发而成,通过gunicorn运行于Webfaction上,Python版本为2.7.4, 更多描述看这里: 说说我这个博客的架构 ,其中Django的版本后来被升级为1.6.1的。

功能

  1. 文章、分类和页面的增删改查
  2. 通过rst格式或者html格式书写文章正文
  3. 侧边栏的组件化调整(目前比较弱)
  4. 集成多说的评论
  5. RSS和rpc
  6. 其他的自己看把,博客上能看到的功能代码都在这里了

2014-05-02添加

微信自动回复接口

2014-05-31

后台修改为xadmin(0.5v)

2016-07-02

  • Post增加is_md字段,增加对markdown格式的支持
  • 拆分settings.py文件为develop.py,product.py让配置更清晰
  • 通过DJANGOSELFBLOG_PROFILE来加载对应的配置develop/product
  • 修复创建Post时不填英文标题导致的文章无法访问的bug

哪些技术

主要是对Django的Class-Base View的一个实践。另外也是项目开发、部署、维护的基本流程的演练。 技术都在架构里有说。

如何使用

安装virtualenv:

sudo pip install virtualenv

创建虚拟环境:

virtualenv www

把项目放到www目录,cd到目录中,执行:

cd www
# 激活虚拟环境
source bin/activate
# 安装依赖包
pip install -r requirements.txt

创建数据库或表:

# 针对sqlite3,mysql的话需要先创建数据库然后修改settings中的配置
# 在django_selfblog/selfblog目录下执行
python manage.py syncdb

运行:

# 直接运行
python manage.py runserver

#或者用gunicorn
gunicorn selfblog.wsgi:application

访问:

http://localhost:8000

部署注意:

需要修改settings中关于debug模式的判断
需要修改数据库的设置
需要修改DOMAIN和admin邮箱的设置
...

帮忙改善

本来打算在完善一些代码,再发出来,怎奈有太多的东西要学习,不能立马开始完善。遂想不如拿出来让大家一起改进。

分享你的blog

我建了个ISSUE,方便用此源码的同学分享自己搭建的成果:#2

使用ansible一键部署

写了一个ansible的脚本: deploy-blog-simple.yml

在配置好ansible之后,可以一句话完成部署操作:

$ ansible-play deploy-blog-simple.yml

这样执行完成之后,程序会在你配置好的服务器上自动的搭建虚拟环境,并安装依赖,启动blog程序,监听在8000端口,直接可以通过ip+端口进行访问: http://your-ip:8000 ,后台地址:http://your-ip:8000/xadmin

用户名/密码 均为 the5fire

不了解ansible的童鞋可以看下这里: ansible中文指南

来个截图看看:

image

更新后xadmin的后台图:

image

django_selfblog's People

Contributors

escblue avatar mozillazg avatar the5fire avatar wwj718 avatar zsc1528 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

django_selfblog's Issues

运行时提示错误

运行后打开0.0.0.0:8000的时候出现错误:

  1. 终端显示:“from django.forms.utils import flatatt as _flatatt ImportError: No module named utils” ;
  2. 浏览器显示:"A server error occurred. Please contact the administrator"。
  3. 在终端打开python,发现输入:from django.forms.utils import flatatt as _flatatt,也是提示”ImportError: No module named utils“。
  4. 我发现是django的库依赖了这个文件,但是这个django版本却没有django.forms这个文件,不确定是否为版本bug.我安装1.7版本以上就可以导入这个库,但是其他依赖却出现问题。
  5. 暂时未能解决这个问题,不知道版主有没有解决方法,谢谢!

配置中的地址建议用相对路径代替绝对路径

你配置的所有地址都是绝对路径,而实际上几乎所有的地址都可以根据项目的相对路径进行表示。这样绝对路径,在自己电脑上弄还好,一旦涉及到克隆一份新的副本出来,更改配置就很麻烦了,而且假如在多台设备上进行开发,并且项目路径不统一,则同步起来会相当麻烦。建议全部都改成相对路径。

比如说confg/supervisord.conf

[supervisord]
logfile=/home/the5fire/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10           ; (num of main logfile rotation backups;default 10)
loglevel=info                ; (log level;default info; others: debug,warn,trace)

其中logfile实际上可以写成logfile=tmp/supervisord.log,只要保证是在项目根目录执行命令就行了。

搭建完后,新建一篇文章出现bug

下面的操作都是按照git的安装步骤来搞的。
但是基本功能都用不了,要不是代码有bug,要不就是安装文档有疏漏。

在centOS6.5 64bit(Python 2.6.6)系统上搭建完成后
打开如下链接:
http://10.10.10.111:8000/xadmin
进入后台增加一篇博客,这一步骤没问题

但是再进入
http://10.10.10.111:8000/

点击对应博客后面的 阅读全文 这个超链接
就链接到下面这个不能打开的地址:
http://10.10.10.111:8000/.html

这个东西不是缓存,用chrom按F12看了对应实际链接就这个。
查看了对应的日志文件,还有启动后台没有任何报错。

然后我在centOS7.0 64bit(Python 2.7.57) 也试过,还是这个问题。

blog案例展示

用这套源码搭建起来博客的同学不妨放着链接在这里。也方便大家参观。也可以带些流量。

跟帖格式可以如下,按照我的博客来说。

blog:http://the5fire.com
服务器:webfaction centos
部署环境:virtualenv+supervisord+nginx+django1.5

u'djdt' is not a registered namespace 错误

按照readme.me部署,执行gunicorn selfblog.wsgi:application出现以下错误:u'djdt' is not a registered namespace
使用python manage.py runserver 没有问题.
我的环境:django==1.5.1
django-debug-toolbar==1.2.1
gunicorn==18.0
建议在requirement.txt里把依赖的库的版本号也加上吧
以上

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.