2014年1月16日星期四

尝试Django


已经决定2014在公司自娱的项目,就用python来做了。这些日子熟悉了sublime,Paramiko,tenjin。把一些基本的操作点代码写出来了,如果只是做个命令行的东西,从技术点上该尝试的都已经ok了。

我不喜欢在命令行敲命令去驱动程序,我喜欢在屏幕上输入参数,点击“Run”。。。运行的逻辑在心里,看到的应该只是状态...

下面这篇文章讲了几个python上的web框架,不错。http://feilong.me/2011/01/talk-about-python-web-framework

我选了djiango,应该能省不少事吧。https://www.djangoproject.com/

参考入门教程: https://docs.djangoproject.com/en/1.6/intro/tutorial01/

上面的教程跟当前版本有出入,运行easy_install Sphinx 安装文档生成器。再到Django的doc目录运行命令“make html”来生成HTML文档。


1)创建Djiango Project。
可以把project理解成一个web应用,一个project会包含一些app。
创建一个项目的根目录,运行:“python C:\Python27\Lib\site-packages\django\bin\django-admin.py startproject oesTester”

2)默认的创建出来的project会带有几个app,其中的一些app需要数据库的支持,所以,需要运行“python manage.py syncdb”来在数据库中创建一些表。最后会提示你创建后台管理应用的管理员账号、密码。

3)创建Project里的一个app。
可以把一个app理解成负责某项功能的模块。app的python代码可以在任何python path里。
python C:\Python27\Lib\site-packages\django\bin\django-admin.py startproject oesTester
一个project有多个apps组成。在DJango中model是data class的意思,对应于ORM里的数据模型。
下面的命令创建一个app,名称是"autoInstaller"。
python manage.py startapp autoInstaller

启动Web Server: python manage.py runserver

4) 创建model的步骤略去,因为这个项目第一版不准备使用DB.


5) 访问 ,页面没有加载css,开始一直以为是Django static的配置问题。后来注意到console有“mimetypes.py", line 249, in enum_types”之类的信息,原来这是python2.7的一个bug导致的。
   修改mimetypes.py,注释掉下面这些行
                #try:
                #    ctype = ctype.encode(default_encoding) # omit in 3.x!
                #except UnicodeEncodeError:
                #    pass