语言Django 详解

Django是一个开源的Web应用框架,由Python写成。采用MVC的软件设计模式,主要目标是教开发复杂的、数据库让之网站更换得简单。Django注重组件的重用性和“可插拔性”,敏捷开发同DRY法则(Don’t
Repeat Yoursef)。

语言 1

花了点儿圆满时间,利用工作闲暇时间,开发了一个冲Django的型任务管理Web应用。项目计划之实时动态,可以便宜地于列成员查看(^_^又再次发明轮子了)。从前台到后台,好好折腾了一致管,用到:HTML、CSS、JavaScript、Apache、Python、mod_wsgi、Django。好久不用CSS和JavaScript了,感到有些生了,查了多赖手册。后台Django开发环境之搭建呢花了许多时日与精力。记录下来,免得以后走弯路。同时被大家推荐一下Django框架,如果你想特别快地修好之web应用,可以考虑动用Django,同时Django还见面给您提供一个功能强大的后台管理界面。

文/半生蝶衣

Django是一个开源之Web应用框架,由Python写成。采用MVC的软件设计模式,主要目标是让开发复杂的、数据库让之网站更换得简单。Django注重组件的重用性和“可插拔性”,敏捷开发以及DRY法则(Don’t
Repeat
Yoursef)。在Django中Python被广泛使用,甚至包括部署文件以及数据模型。它好运作于启用了mod_python或mod_wsgi的Apache2,或者其它兼容WSGI(Web
Server Gataway Interface)的Web服务器。

外来静秋前,微笑着抱于静秋,静秋双手揽住叶梒的脖子。叶梒将它轻轻地位于床上,认真地拉其擦拭了各级一样寸肌肤,那样子,就比如于错拭一块璞玉。他把浴巾给静秋围上。静秋站起来,转身去冰箱里用了点儿罐啤酒,转身而管它们底画夹拿来了。

  1. Django的快支付

“我怀念你了解,”“我还要想吃你作画了。”“你本底师不留下来真的可惜。”静秋递交叶梒同罐子啤酒,同时延伸啤酒的拉环,喝了平不怎么口,放在地毯上,笑着说。

第一步(Model):设计自己之数据模型。
第二步(View):创建网页模板。Django自己的Html模板语言,非常容易将数据及模板结合起来,创建动态页面。
老三步(Control):定义URL,提供劳务与操纵。
入门教程: http://wiht.link/django_primer

“以后自己是无是会经常出现在您的画里?”

  1. Django开发环境之搭建

“诚实地说,”“是的。”静秋坐在地毯上,打开画夹,从下抽出一布置新的画纸,并由笔筒里挑了同一绝望还特别尖锐的铅笔。

Django可以运作于其它遵守WSGI的Web服务器上。本文主要介绍Apache2+mod_wsgi+Django的条件搭建。所欲的软件如下:

“那我若无苟摆个什么姿势?”

Apache2:Web服务器
Python2.x:Python语言支持
mod_wsgi:Apache的WSGI模块,有了该模块的支持,就可就此Python做啊CGI脚本来编写网络使用(之前还有一个mod_python,在Apache官网上发现mod_python已经过时,渐渐要受mod_wsgi替代,据说mod_wsig性能要好有)
Django:一个强的Python Web开发框架,本文的台柱。
2.1 Apache的安装

“你轻易就好,”“我岂敢要求你。”

下 载: http://httpd.apache.org/download.cgi 
(选择版本2.2.22,mod_wsig暂未支持2.4.2)

“那自己就算扣留正在您好了。”叶梒端起那罐啤酒,喝了同等人数,一光手支在头的单方面,半卧在床上,看正在静秋。

解压缩 : $tar xvfz httpd-NN.tar.gz

“这样还死好之。”“其实乃呀体统都非常好的。”静秋自言自语到,嘴角微微上扬。

$cd httpd-NN

静秋偶尔喝一样总人口啤酒,偶尔把铅笔的尾端抵在生附上上,她那还无干透的发垂在肩上,两漫漫腿放在一旁,那样子,优雅极了。这种优雅在他长期的记忆里曾经出现了,他记不清了是什么时候,什么地点,他了解之是,那种优雅已经永远地留下在了千古。如今以外前方的静秋,是那想吃他珍视。

编译配置: $./configure –with-included-apr –prefix=PREFIX
#with-included-apr选项指定使用apache软件包里的apr库

“不要不说话,”“我好看您安然的样子,同样爱好听你的响声。”静秋正在吃写被叶梒的面颊打上投影。

编 译: $make

“我眷恋你见面掉打一点素描的,”“对为?”“我的意思是,你的打可来情调。”

安 装: $make install

“完美的主张。”“我思念了。”

配 置: $vim PREFIX/conf/httpd.conf

“你想要一个画室吗?”“我想立刻对准自家吧还不成问题。”

测 试: $PREFIX/bin/apachectl -k start

“像什么样子的?”静秋似乎有点惊喜。

参 考:

“海边是做不至了,”“可以产生那么些吊兰传下来,吊床和茶几都是木制的,墙上有吉他。地板要喷漆成龙蓝色,像是在海里。”

官方主页: http://httpd.apache.org/
设置文档: http://httpd.apache.org/docs/2.2/install.html
2.2 Python的安装

“倒符合本人的设想。”


载: http://www.python.org/getit/releases/2.7.3/ (选择2.X版都可以,3.0暂时不支持)

“还要发同等只猫。”

解压缩 : $tar xvf python-X.tar

“我喜欢猫。”

$cd python-Y

“那时候你的写还好悬挂于其间,”“那是您的世界。”

编译配置: $./configure –enable-shared –prefix=PREFIX
#–enable-shared选项指定生成python的动态库

“是若我的社会风气。”静秋说着放下了笔,拿起画站起来跑至叶梒的身边。他趴在叶梒的背及,一单独手抚摸着叶梒的发,另一样只有手把画递给叶梒。

编 译: $make

“我喜爱作画被的协调。”

安 装: $make install

“画着的公,和身边的你,我都好。”静秋将脸颊靠在叶梒的膀子及,一光手悄悄地爬上叶梒的手背。

测 试: $python

叶梒抓住静秋的手,慢慢地回过头,轻轻地接吻了静秋的嘴皮子。

参 考:

“可以被自身念一段小说也?”静秋轻声说。

官方主页: http://www.python.org/
2.3 mod_wsgi模块的装

“没问题。”叶梒转身走及书桌前,从同垛书里抽出了扳平按部就班玛格丽特·米切尔的《飘》。

下 载: http://code.google.com/p/modwsgi/  (选择3.3版本)

外回床边的时,静秋已经迈进了被里,身子探出去靠在炕头,半卧着,被子坐在心里之职务。叶梒以她身边为下来。

解压缩 : $tar xvfz mod_wsgi.X.Y.tar.gz

“读哪一样截为?”叶梒把书放在腿上,翻开到混合着书签的那么同样页。

$cd mod_wsgi.X.Y

“就由这里读由吧。”“我还真想明白故事都到了何?”静秋显然是朗诵了及时按照开的。

编译配置: $././configure –with-apxs=/usr/local/apache2/bin/apxs
–with-python=/usr/local/bin/python #
指定Apache2的模块编译程序和Python解析器

“好像是思嘉和艾希礼再次相遇的那么同样段,”“上次恰恰读到了此处。”

编 译: $make

“唔,那是十足悲伤的,”静秋发某些心疼地说及。“不过没什么,你念吧。”

安 装: $make install

――“那天你既告诉自己,你更爱自我。你是记忆那无异上的!
”“而且我明白啊,我敢说您未曾改观!你并无更改!”“而且你刚才尚说她可是大凡只梦罢了。”“我们理应忘记在‘十二橡树’村的那同样龙。”“你看我会忘记吗?
难道你早已记不清了? 你会老老实实说您无容易自也?”

测 试: $python

“这是思嘉说的话,”叶梒像叙述故事一样对前面此可爱的爱人说在。

2.3.1  配置Apache(修改/usr/local/apche2/confi/httpd.conf)

“继续吧。”“你了解自己欣赏放的。”

# 加载wsgi模块
LoadModule wsgi_module modules/mod_wsgi.so
....
# HTTP请求处理脚本
WSGIScriptAlias /test /home/xxx/www/test.wsgi
<Directory "/home/xxx/www">
Order allow, deny
Allow from all
</Directory>

――“不,我无便于君。”

2.3.2
编写test.wsgi(WSGI标准: http://www.python.org/dev/peps/pep-3333/ )

――“那是瞎说。”

def application(environ, start_response):
 status = '200 OK'
 output = 'Hello World!'

 response_headers = [('Content-type', 'text/plain'),
  ('Content-Length', str(len(output)))]
 start_response(status, response_headers)

 return [output]

――“即使是瞎说,”“那也是拒绝讨论的从事。”

2.3.3  重启apche2

叶梒稍微停顿了一晃,伸出他的手心抚摸着静秋的发。

当随心所欲网络浏览器被输入:http://www.mysite.com/test。看到“Hello
World!”,恭喜您成安装了WSGI模块。

――“你是便于自我之!你是容易我的!说吧――说吧!”

参 考:

――“不要!你更这么,我哪怕假设针对性您管礼了。”“我们无能够这样!”“我报告您我们未能这样!”

官方主页: http://code.google.com/p/modwsgi/
安装文档: http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide
部署文档: http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide
WSGI文档: http://www.python.org/dev/peps/pep-3333/

叶梒又尖锐地叹了扳平总人口暴,继续读着,他的眼眶开始转换得起接触红了。

2.4 Django的安装

――“但是,艾希礼,你切莫能够移动。你为什么要运动吗? 你是易自我之――”

下 载: https://www.djangoproject.com/download/  (选择1.4版本)

――“你还要自己这么说也?
好,我就算说,我爱而。”“我容易尔,爱尔的威猛,爱君的血性,爱你的情火,爱你那十足的冰冷无情。我好而及什么水平,爱至自才几乎败坏了立所庇护过自己及我同贱之殷勤款待,爱至几乎忘却了自身那么世界上再好不过的妻子――爱至自我当当时泥地里便会针对君放肆,把您作一个――”

解压缩 : $tar xvfz Django-1.4.tar.gz

――“如果您闹矣那么的觉得――而又没有管我哪――那么您尽管是连无便于自己。”

$cd Django-1.4

――“我是永远无法要你知的。”

安 装: $python setup.py install

秋趴于叶梒的腿边睡着了。

测 试:

“我是永远无法要你知道的。”叶梒轻声地再度了扳平整刚才的语,不亮堂静秋有没有出视听,但愿她无听到吧,叶梒心里这样想在。

$python
>>> import django
>>> print(django.get_version())

叶梒不忍打扰入睡的静秋,他迟迟启程,光着下冷地动及书桌前,将那按照《飘》放在桌上。他转身到窗前,夜色已遮蔽了外界的绝大多数,只有远处来点点的明亮。玻璃窗上日趋露出出曾他同知秋站在窗前的状况。

参 考:

外的思绪还栖息于正读了的那么本《飘》里面。如今,在外前方的静秋就如思嘉一样,在更了悲痛下成为了一个独自,成熟的婆姨,让他不禁对她心生爱慕,感受在其柔软如刚的魂魄。而知秋呢?如果多年以后还能再次见面,她也必定成了一个像思嘉一样的爱妻了咔嚓。可如今,如今之夜晚,知秋在举行呀吧?她的闺女曾经得以出口让妈妈了咔嚓,那该是哪些可爱之一个生也?!

官方主页: https://www.djangoproject.com/
安装文档: https://docs.djangoproject.com/en/1.4/intro/install/
高效入门: https://docs.djangoproject.com/en/1.4/intro/tutorial01/

叶梒转过身,拿起那么罐未喝了的啤酒,喝尽矣。他将起静秋放在书桌上的刺激,抽出了同支出,点达成了。叶梒深深地吧了同样口辣。他感怀为他的大脑稍微清醒一些,可是这出啊用也?他就是如此无情的吧?为什么命运便这么将他改成了一个无情的人数啊?他对知秋的好,就这么永远地留下在了千古了吗?可是他针对性静秋的情义,又岂去找到一个成立之分解啊?静秋之身体毫无遮掩地展露在他前方的时光,他同时以怀念方什么为?他爱知秋,那都改为了久久的千古,如今,他容易的静秋,在外前头,却同时那么漫长。可能,他容易上之丁,终究都是接触不顶的,他如此想着。他不过压缩了少人数,那烟就尽快燃尽了。他消灭了杀,缓缓地运动至了床铺前。

  1. Django中文语言支持

外小心地扭被子,解下浴巾,让好之人上至被里。静秋的身体还是露在。他不思扯皮醒静秋,便背着对正在静秋躺下了。他熄灭了灯,想要睡觉了。叶梒将睡着的下,静秋以半梦半醒之间被着叶梒的名。静秋伸出手向叶梒就边摸索了找,刚好触到他继背的职。静秋款地变换到叶梒的身后,抱住了叶梒。

Django使用的是UTF-8编码,所以对于国际化支持不成问题。因为首玩Django,中文显示乱,折腾好人了(一直当为此底底mysql默认字符串是latin1编码,vim默认保存的文件编码为ascii)。最终得出结论,如果中文显示乱码,或者Django报错(…
unicode …blabla…),请检查:

“叶梒,让我直接陪伴在你好不好,”“不要还离了。”叶梒分不清静秋是当游说梦话,还是以为他。他就看静秋的皮肤非常滑,而且和外粘得那么挨着。叶梒缓缓地改过身,将静秋揽在怀里。他针对性怀里的这家是平等栽什么的情义吗?她像相同宗艺术品,就算没语言,只能远远地圈在,他都觉着惭愧。叶梒自愧于抱住静秋的所作所为。她这样美好的人头,怎么就遇到了他吧!他发出种植想哭的扼腕。

Django的装置。打开自己种之settings.py,LANGUAGE_CODE=”zh_CN”
?FILE_CHARSET=’UTF-8′ ?DEFAULT_CHARSET=’utf-8′?
查阅自己种所有的公文编码是否坐UTF-8编码保存之?确保.py文件首先实行要长:#-*- 
coding:utf-8 -*- ?
HTML模板文件head部分,添加<meta http-equiv=“Content-Type”
content=“text/html;charset=utf-8″/>
检查好种的数据库字符串编码是否也UTF-8,命令如下: 
查看:

那么夜叶梒与静秋就这么宁静地入睡了。叶梒没有重新做梦,他一味感觉到到静秋的深呼吸一直当他的耳边,那么好,却那么好听。

show create database dbname; 
show create table tablename; 
show full columns from tablename; 

拂晓的早晚,静秋比叶梒醒得早有。他求摸向静秋的势头,那里空荡荡的。他心地顿时一阵虚无。他以为静秋运动了。

创建:

外听到厨房里来部分音的音响,他起身穿上了内裤,向厨房走去。静秋在厨里举行着早餐。如果叶梒没有醒的话,一定觉得,这便是外设想着之在了。有一个主妇,至少可以说凡是女主人。他莫晓得想立刻一阵子纪念了多久,上平等不成是什么时他啊记不起了。

create database dbname CHARACTER SET utf8; 
create table tblname CHARACTER SET utf8; 

“你醒了,”“昨天真正抱歉,我居然先着了。”静秋身上穿正叶梒的毛衣,可以说凡是将静秋装于了中。

修改:

“有若真的好哎。”叶梒由衷地游说发生立刻几乎单字。

alter database dbname CHARACTER SET = utf8; 
alter table tablename CONVERT TO CHARACTER SET utf8;

“不过你这里会吃的事物还真的是丢,”“可以多加一点呢?”

  1. Django应用之布置

“我深长远无回来过了。”“如果得以,我怀念你可以决定我的寒。”“不,可以算得,我们的下,对吧?”

Django应用的运作产生三三两两独主意,一种植是以开发阶段,使用创造项目下的manager.py
runserver
ip:port来启动一个因此Python实现之轻型web服务器;另外一种植就是是透过mod_wsgi将公协调之动部署到生产条件,对外提供服务。下面简单介绍一下Django的安排(虚拟主机上之部署,自行参考文档)。

“你怎么说还吓了。”“反正自己是未乐意走了。”

一旦你创造的Django项目文件列表如下:

个别丁吃罢了早餐。叶梒想起了连年前他和知秋也早就发了这么的画面。只不过,他此时审爱上了前方的斯老婆子,从没有人这么心疼了他,就算知道自己心里有人家的记得,还是这样地好在他。他发那早餐不只是简简单单的荷包蛋,也不只是是略碗里之米粥,而是他新的生的初步。

my-site
|- my-site
|- myapp
 |-static
 |- ...
|- static
 |- css
 |- js
 | ...
|- apache
|- ...

“我还忘记了今天要是上班也?”叶梒看了扣日历,那日历还栖息于知秋来寻找过他的那么无异天。他翻日历,已经到了他上班的小日子了。

    1. 始建Django项目的wsgi脚本(my-site/apache/django.wsgi),内容如下:

      import os, sys

      sys.path.append(‘/…/www/’)
      sys.path.append(‘/…/www/my-site’)
      os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘my-site.settings’
      os.environ[‘PYTHON_EGG_CACHE’] = ‘/…/www/.python-eggs’

      import django.core.handlers.wsgi

      _application = django.core.handlers.wsgi.WSGIHandler()

      def application(environ, start_response):
      if environ[‘wsgi.url_scheme’] == ‘https’:
      environ[‘HTTPS’] = ‘on’
      return _application(environ, start_response)

“我深信不疑今天若还见面开心之,对也?”

4.2. 部署Apache(httpd.conf),内容如下:

“不过,你吧懂得那么工作有差不多无聊。”叶梒穿上了警服,耸了耸肩,微笑着为门口走去。

# 请求访问www.xxx.com/的时候,转到django.wsgi
WSGIScriptAlias / /.../www/my-site/apache/django.wsgi

<Directory /.../www/my-site/apache>
Order deny,allow
Allow from all
</Directory>

# 静态文件的访问路径配置
Alias /static/ /.../www/my-site/static/

<Directory /.../www/my-site/static>
Order deny,allow
Allow from all
</Directory>

“你要想着,我当您回到呀。”“是未是会开心一点?”静秋这儿快的楷模,让叶梒忘记了它是好比较他还大七年念心人。静秋这时候凡那么可爱,那样使人痛惜。他此时只是想紧紧地收获住它。

4.3. 配置setting.py

“是呀。”叶梒将静秋揽在怀里,在其的唇上深深地同样亲。

EBUG=False
由定义404.html,500.html模板(网页未找到、服务器间错误)

叶梒醒矣,他现已身于和谐的旅舍里。他从床看了羁押日历,确实到了该上班的日子了。

4.4. 静态文件

STATIC_ROOT = ‘/…/www/my-site/static/’
STATIC_URL = ‘/static/’
$./manager.py collectstatic

在意:开发阶段,一般还见面管相应app的静态文件,放在app目录下之static目录下。在专业生产环境布置的时刻,使用./manager.py
collectstatic来将具备静态文件收集至STATIC_ROOT指定的职位,包括管制后台的。

4.5. 重启apahce

浏览器输入相应的URL地址,看到您协调的web应用界面的话,恭喜老功告成!

  1. 总结

本文主要介绍了瞬间Django开发条件之搭建、Django应用的配置和国文乱码的缓解方法。具体如何使用Django快速地创建好的web应用,并无提及。Django相对来说,文档比较全,加上官方推出的相同以开:《The
Django Book》,相信只要付出条件多建筑好,创建自己的Web应用也会非常容易。

愈读书Django,请看:

Django1.4文档: https://docs.djangoproject.com/en/1.4/
Django Book 英文版: http://www.djangobook.com/en/2.0/
Django Book 中文版: http://djangobook.py3k.cn/2.0/

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图