语言【中篇言情随笔】《读心人》【19】

Django是1个开源的Web应用框架,由Python写成。采纳MVC的软件设计格局,主要对象是驱动开发复杂的、数据库驱动的网站变得简单。Django重视组件的重用性和“可插拔性”,敏捷开发和D牧马人Y法则(Don’t
Repeat Yoursef)。

语言 1

花了两周时间,利用工作间隙时间,开发了1个依照Django的品类职分管理Web应用。项目陈设的实时动态,能够便宜地被项目成员查看(^_^又重新发明轮子了)。此前台到后台,好好折腾了一把,用到:HTML、CSS、JavaScript、Apache、Python、mod_wsgi、Django。好久不用CSS和JavaScript了,感到有点生疏了,查了成都百货上千次手册。后台Django开发条件的搭建也花了许多时间和精力。记录下来,免得现在走弯路。同时给我们推荐一下Django框架,假如你想那些迅猛地编写自个儿的web应用,可以考虑选用Django,同时Django还会给你提供1个成效强大的后台管理界面。

文/半生蝶衣

Django是三个开源的Web应用框架,由Python写成。采纳MVC的软件设计情势,首要对象是驱动开发复杂的、数据库驱动的网站变得不难。Django注重组件的重用性和“可插拔性”,敏捷开发和DLacrosseY法则(Don’t
Repeat
Yoursef)。在Django中Python被大面积使用,甚至包涵陈设文件和数据模型。它能够运作在启用了mod_python或mod_wsgi的Apache2,或然其余包容WSGI(Web
Server Gataway Interface)的Web服务器。

她来到静秋前面,微笑着抱起静秋,静秋单臂揽住叶梒的脖子。叶梒把她轻轻地位于床上,认真地帮他擦拭了每一寸肌肤,那样子,就像是在擦拭一块璞玉。他把浴巾给静秋围上。静秋站起来,转身去冰橱里拿了两罐干白,转身又把她的画夹拿来了。

  1. Django的急忙支付

“笔者想你通晓,”“笔者又想给你作画了。”“你今后的楷模不留下来真的可惜。”静秋递交叶梒一罐干红,同时拉开利口酒的拉环,喝了一小口,放在地毯上,笑着说。

先是步(Model):设计自个儿的数据模型。
第贰步(View):创立网页模板。Django自身的Html模板语言,分外不难将数据和模板结合起来,创设动态页面。
其三步(Control):定义UPAJEROL,提供劳动和控制。
入门教程: 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暂不辅助)

“还要有3只猫。”

解压缩 : $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模块的安装

“没难题。”叶梒转身走到书桌前,从一摞书里抽出了一本玛格丽特·Mitchell的《飘》。

下 载: 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

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

测 试:

“小编是世代一点都不大概使您驾驭的。”叶梒轻声地再次了1回刚才的说话,不晓得静秋有没有视听,但愿她尚未听到吗,叶梒心里那样想着。

$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; 

拂晓的时候,静秋比叶梒醒得早一些。他请求摸向静秋的势头,那里空荡荡的。他心里立时一阵虚幻。他以为静秋走了。

创建:

她听见厨房里有一对响声的鸣响,他出发穿上了底裤,向厨房走去。静秋在厨房里做着早餐。如果叶梒没有醒的话,一定觉得,那正是她想象中的生活了。有1个主妇,至少能够说是女主人。他不知道想这一阵子想了多久,上二回是怎么时候他也记不起了。

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来运行1个用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>

“你倘若想着,作者等你回来呀。”“是否会心情舒畅一点?”静秋此时乖巧的金科玉律,让叶梒忘记了他是可怜比他还大10周岁读心人。静秋那时是这样可爱,那样让人心痛。他此时只想牢牢地抱住他。

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

浏览器输入相应的U中华VL地址,看到您本人的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地图