• 这个模板是我在官方模板“简约风格3”的基础上修改的,出于个人角度的原因,我写代码时通过“作弊手法”隐藏掉了很多东西,比如广告、每篇日志下的“随机文章”(RSS输出时还是会看到的)等。另外,“日志分类”也没考虑进去,因为我直接用了tag来分类,今天写日志时加了一个分类,发现文章title背景那块儿出问题了。还有几个小地方没来得及做完,比如鼠标悬停在右侧火箭上时的提示,左侧UFO现在是随页面滚动而变化位置的,还没来得及固定(或者是加上鼠标拖动功能?)。

    最近熬夜太频繁了,等周末有时间再接着调。暂时就先不加分类了吧。

    如果有朋友想提建议可以在下面留言或者gmail:naoyeye@gmail.com

  • test password2010-08-03

    Tag:
    [本日志已设置加密]
  • 搬家了。2009-11-12

    Tag:python

    http://naoyeye.appspot.com/

    自己搭建的一个博客,基于google app engine和Micolog,一边用来练习python,一边记录。

  • 今天需要从旧数据库中导出一个表,然后导入到新的数据库中。我导出时选的是xls格式,导入后发现数据库中的数据都能正常显示,以为已经搞定,回到网站上一看,竟然报错了。具体的错误信息我也记不清了,等我明天去公司再看看。

    还以为是网站程序的问题,但从来没变动过,肯定是数据库的问题。然后就开始了漫长的排查纠错过程……

    后来发现是旧表导入到新的数据库中时表中的数据类型是错的,旧表中是int类型,导入后却变成了float类型。只能手动一个一个改,来回导了七八遍才搞定。

  • 设置admin应用的错误2009-10-28

    Tag:

    我在添加admin应用前就估计会出错,果然被我言中。

    添加admin:

    在我们的站点根目录setting.py里的INSTALLED_APPS元组里的'django.contrib.auth',下面加入'django.contrib.admin',一行:

    INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.admin',#这是添加进去的admin应用
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'mysite.blog'#这是我们的站点应用
    )

    然后manage.py sycndb重新建表

    会显示类似:

    Creating table django_admin_log

    Installing index for admin.LogEntry model

    的信息。说明已经在数据库中添加了新的表。

    接着需要在urls.py中添加admin的URL,我参考的书上说是这样写:

    urlpatterns = patterns('',
        (r'^admin/', include('django.contrib.admin.urls')),   
    )

    我用的django版本是1.1的,上面这种写法已经是老版本的了。这里先这么写,后面我会给出1.1版本的admin URL写法。

    下面还要在blog目录下的model.py里添加admin,并注册model。

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

    # Create your models here.
    class BlogPost(models.Model):
        title = models.CharField(max_length=150)
        body = models.TextField()
        timestamp = models.DateTimeField()

    admin.site.register(BlogPost)

     

    添加完之后运行manage.py runserver,启动服务器,访问http://127.0.0.1:8000/admin/

    不出所料,报错了,访问http://127.0.0.1:8000/也一样:

    Traceback (most recent call last):

      File "C:\Python26\lib\site-packages\django\core\servers\basehttp.py", line 279, in run
        self.result = application(self.environ, self.start_response)

      File "C:\Python26\lib\site-packages\django\core\servers\basehttp.py", line 651, in __call__
        return self.application(environ, start_response)

      File "C:\Python26\lib\site-packages\django\core\handlers\wsgi.py", line 230, in __call__
        self.load_middleware()

      File "C:\Python26\lib\site-packages\django\core\handlers\base.py", line 42, in load_middleware
        raise exceptions.ImproperlyConfigured, 'Error importing middleware %s: "%s"' % (mw_module, e)

    ImproperlyConfigured: Error importing middleware django.contrib.sessiosns.middleware: "No module named sessiosns.middleware"

    把刚才添加进去的代码挨个字母查了一遍也没发现有什么问题,把刚才加进去的代码都删掉,恢复到以前的状态时再开启服务器访问http://127.0.0.1:8000/就ok。很奇怪的问题。在网上搜了很多信息,后来豆瓣python编程小组里的这篇帖子给了我提示。我重新根据django的最新官方文档配置了一下url.py

    from django.conf.urls.defaults import *

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

    urlpatterns = patterns('',
        # Example:
        # (r'^mysite/', include('mysite.foo.urls')),

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

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

     

    再次开启服务器,访问访问http://127.0.0.1:8000/admin/.

    ok.

    django admin 中文界面

    另外,如果想把admin的语言换成中文,可以在setting.py里找到:

    # Language code for this installation. All choices can be found here:
    # http://www.i18nguy.com/unicode/language-identifiers.html
    LANGUAGE_CODE = 'en-us'

    把LANGUAGE_CODE = 'en-us'改成LANGUAGE_CODE = 'zh-CN'

    其他的类似manage.py syncdb建表时遇到问要不要建立superusers可以在网上搜索一下。我这里略过。

  • 刚才把blog的APP添加到了settings.py里的INSTALLED_APPS元组里:

    INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'mysite.blog',
    )

    写完了第一个Blog的Models:

    from django.db import models

    # Create your models here.
    class BlogPost(models.Model):
        title = models.CharField(max_length=150)
        body = models.TextField()
        timestamp = models.DateTimeField()

    并且设置完了sqlite3数据库:

    DATABASE_ENGINE = 'sqlite3'
    DATABASE_NAME = r'c:/mysite/blog/db/django.db'

    然后在cmd中输入manage.py syncdb建表:

    结果提示:“ IndentationError: unexpected indent”

    我马上google了一下,发现是tab和空格缩进混合使用的问题,关于问题的解答猛击这儿,以前我一直习惯用tab缩进的,后来看见有人说写python最好用四空格缩进,今天刚开始写Models时的确用了四空格,但是写第二行时就忘了,又用了tab,这也是出现错误后我才想起来的。这个习惯要改掉。我把缩进都改成四空格之后重新建表,结果又出错了:

    "sqlite3.OperationalError: unable to open database file"

    搜索了一下,发现是数据库的路径有问题,我的数据库路径是c:/mysite/blog/db/django.db,但是blog目录下没有db这个目录,我写时以为如果没有这个目录会自动创建,看来是不行,于是我手动添加了这个目录,再次建表,成功。

  • 重新改了一下模板的代码,去掉了广告。

    css中加入了:

    <style type="text/css">
    <!--
    .relpost,.addfav,p.cc-lisence{ display:none}/*去掉右侧栏和文章下部乱七八糟的广告、文章顶部的版权信息等(RSS订阅都会看到那段版权声明,很占字符)*/
    -->
    </style>

    head中加入了:

    <!--/*调用blogbus的jquery文件*/-->
    <script type="text/javascript" src="http://public.blogbus.com/blogbus/skin/common/resize.js"></script>

    <!--/*去掉文章下部的那个大图片广告,没找到更好的办法,只好用这个*/-->
    <script type="text/javascript">
    $(document).ready(function()
        document.title=document.title.replace(/- 博客大巴/,'');  /*替换title中的"博客大巴"字样*/
        $('.postBody').find('table').css('display','none');     
    });
    </script>

    其他的一些零零碎碎的代码就不贴了。

    最佳的效果在chrome/firefox中才能体现出来。最低支持1024×768的分辨率,大一点儿会更好。

    很久没写模板了,一直想自己做一套Blog程序,那样比较自由。但没时间,以后再说。

  • 先前的python+django的安装和配置先略过。

    先打开cmd命令提示符。我打开cmd后默认的路径是:

    c:\documents and settings\administrator>

    我想在C盘根目录下建立我的项目,在上面的路径后输入:

    c:\documents and settings\administrator>cd c:\

    显示:

    c:\>

    现在已经转到c盘根目录了。接着输入:

    c:\>django-admin.py startproject mysite

    现在c盘根目录已经多了一个名为“mysite”的文件夹。里面包含了:

    __init__.py:将这个项目目录作为Python的一个包。
    manage.py:可以在命令行下管理这个项目。
    settings.py:这个项目的配置文件。
    urls.py:定义了Django项目中的URL路由表,指定了URL与被调用类之间的对应关系

    然后回到cmd。输入manage.py runserver,这一步是开启python自带的开发服务器。

    我以为manage.py是python目录的(我已经把python整个目录加紧环境变量中了),在cmd的任何路径后输入都会开启,结果发现不是,它执行的是刚才新建的项目里的manage.py。所以需要把刚才建的项目也加到环境变量里。修改环境变量这一步网上有很多教程,我就不记录了。

    修改完环境变量后记得要重启cmd。

    一直没搞明白为什么python的开发服务器一定要用8000端口,我想改为别的端口但没找到从哪儿改。刚才查了一下,原来很简单:

    manage.py runserver 8080就行了。我这里还是用8000端口。

    建完项目,开启服务器后访问127.0.0.1:8000就会看到:

    It worked!

    Congratulations on your first Django-powered page.

    Of course, you haven't actually done any work yet. Here's what to do next:

    • If you plan to use a database, edit the DATABASE_* settings in myblog/settings.py.
    • Start your first app by running python myblog/manage.py startapp [appname].

    You're seeing this message because you have DEBUG = True in your Django settings file and you haven't configured any URLs. Get to work!

     

    OK!

  • Intro2009-10-25

    Tag:python django

    Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的软件设计模式,即模型M,模版T和视图控制器V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。via:Django wiki

    我刚刚学习Python语言,我的工作是设计web页面并用html、css、javascript做web前端开发。以前接触过的编程语言有Asp.net\PHP\Java,但都是浅尝辄止,希望能借助这个博客让我的Python学习之路继续下去。

    最早时我是看limodou翻译的《django step by step》和从图书市场买的《Django Web开发指南》开始我的Django之旅的,最近发现了一个基于Django的开源开发平台Pinax,我很想深入了解她,但是由于Python和Django基础不好,所以只好重新回到起点。

    Python对我来说还是太深奥了,所以只好跳过去直接进入Django,希望能一边学习Django一边充实自己的Python知识。

    以后的所有文章都是我在阅读《Django Web开发指南》时的记录。