http://kanrs.com/3_0.html
来源:互联网 发布:美国毒品泛滥 知乎 编辑:程序博客网 时间:2024/05/18 09:55
http://kanrs.com/3_0.html
麻油四喜欢花花草草。 没有花花草草喜欢他。 群芳丛中过,片叶不沾身。 人常道:没有谈过恋爱的大学,是不完整的。 生命如此短暂而宝贵,麻油四不想留下遗憾。 一点儿遗憾也不想要。 某日,他和同样孑然一身的阿牛对酒言愁。 说着说着,阿牛提议:“来写个学校的交友网站吧,广结天下良缘,也算是一种善事。” “好啊,好啊”,麻油四终于不胜酒力,醉卧沙场。 麻油四深深地吸了口清晨的空气,从他枕边发现了阿牛留下的字条和小册子。 字条上只有八个字:“看懂册子 过来找我”。 又是一本破旧的小册子,封面上写着“Python写网站入门 作者:阿牛”,麻油四翻看了起来。 一座高山,一位老人,一个少年。 “用Python写网站,最可怕的技术是什么?”少年问老人:“是不是名动天下的Zope?” “以前也许是,现在却不是了。” “为什么?” “因为Zope自从1996年初出江湖,到如今已经有十多年。十年的光阴,足以让许多事情改变。”老人黯然叹息。 “那个企业应用为王的时代已经过去,那些复杂而厚重的框架,已日渐衰落。” 少年仰望高山,山巅白云悠悠。 “那是什么?”少年又问老人:“是不是插件众多的Django?” “不是。” “是不是很小很轻量的web.py?” “不是。” “是不是Pylons?” “不是。” “是不是Facebook发布的Tornado?” “不是。” “我想起来了。”少年说得极有把握:“是世界上最大的纯Python网站--豆瓣,用的Quixote。” “也不是,”老人道:“你说的这些技术虽然都很可怕,却不是最可怕的一种。” “最可怕的一种是什么?” “是WSGI, 一个接口与两个参数。” “一个接口?”少年惊奇极了:“当今天下,用Python写网站,最可怕的技术只有一个接口与两个参数?” “是的。” 学Python ,三天就可以上手了。(Python教程 链接 ) Google、Yahoo、YouTube、NASA(美国航空航天局)、FriendFeed、豆瓣、网易游戏、搜狐邮箱,都是Python的忠实用户。 而用Python写网站,选择丰富。常见的有: Zope,早期的Python框架,著名的Plone内容管理系统(CMS)基于其开发,用户包括GE、美国海军、波士顿在线,和Java类似,Zope也有一套自成体系的服务器,数据库。 Quixote,也是一个早期的Python框架,豆瓣网(douban.com)基于其开发,它的起源是因为用Zope写的代码难以维护和调试。 Django,当下最流行的Python框架,玩聚网(ju690.com),好看簿(haokanbu.com)基于其开发,它能自动生成一套后台管理的界面,很适合用于快速完成小项目。 web.py,非常轻量级的一个Python框架,sohu邮箱基于其开发,它也常用于嵌入式设备。 Pylons,由各种Python库整合而成的框架,reddit.com 基于其开发,基于WSGI,可定制性好。 还有一些比较特别的框架,比如 Facebook(FriendFeed部门)发布的Tornado http://www.tornadoweb.org/ IBM(Second Life部门)发布的Mulib http://wiki.secondlife.com/wiki/Mulib 国人沈崴的Eurasia http://code.google.com/p/eurasia/ 这三款框架共同的特点是支持大量并发的连接,写网页游戏,网页聊天室不妨考虑一下它们。 事实上,用Python按照自己的需求,搭建一个框架是非常轻松的事情,以至于有篇文章教你用3个小时,60行代码编写一个垃圾框架(http://code.google.com/p/robaccia/ ,robaccia,意大利语的垃圾)。 好吧,还是先从环境配置开始。首先,安装Python。 然后安装MySQL-Python,用于连接MySQL数据库。 MySQL-Python迟迟没有发布Python2.6的官方Windows编译版,所以从http://www.codegood.com/archives/4 下载非官方编译的Python2.6版的MySQL-Python 链接 安装。 安装完MySQL-Python后,下载 http://peak.telecommunity.com/dist/ez_setup.py 双击运行,这样就安装了Python的包管理。 然后在我的电脑上右键点击 --> 属性 --> 高级 --> 环境变量 -- 系统变量 -- Path -- 双击出现编辑框 --> 在已经内容的结尾加上 ;C:/Python26/Scripts;C:/Python26/; --> 点击确定 --> 点击环境变量页面的确定 如图所示 开始 --> 运行 --> 输入 cmd --> 输入 就可以安装我们用到的网站开发框架mypy -- 一个在WSGI基础上搭建起来框架。 WSGI是一种协议规范,一个最简单的WSGI程序仅需要几行代码: 它有两个参数,environ和start_response。 environ参数是一个内建的python字典类型, 用于传递变量,比如REQUEST_METHOD,各种中间件的扩展变量。 start_response则是一个函数,参数为状态码和响应的header。 函数的返回值是一个列表,也是网页的正文。 WSGI简单易扩展,符合Python的哲学 -- Pythonic 。 WSGI的基础上,延伸出各式各样的中间件,你可以组装出你需要的功能。事实上,世上所有的框架本来都只不过是一些零碎的组件,一定要拼凑在一起之后,才会成称为框架。 只是,不要试图去找一个无所不能,举世无双的框架。 很多人都错在了这一点,他们执着于框架的优劣。 他们希望找一个好的框架,大幅提高开发效率,保证项目进度,超越性能瓶颈,消灭网站漏洞。 他们在论坛上口水战,在博客中相互鄙视,自以为掌握了通往天国的钥匙。 然而,“银弹”这两个字根本就不存在,那只不过是某些自大狂妄的人,心里的一种幻觉,他们迟早都必将死在自己的这种幻觉中。 框架是程序员手中的兵器。 兵器是死的。 好的兵器,只有在最聪明的人的手里,才能显示其无比威力。 还是先从mypy框架说起 -- 首先,新建一个项目。 这里ppmm便是项目名称。在生成的ppmm目录下,可以看到有三个python文件: init_app.py 用于初始化网站。 simple_server.py,是一个简单的纯Python服务器,默认端口是9888。 dev_server.py 是开发用的服务器,当修改网站中Python文件时,会自动重启,默认端口是9889。 运行dev_server.py,访问 http://127.0.0.1:9889 ,就可以看到默认的提示页面了。 其他的目录结构如下 myconf,配置文件所在的路径;myfile,静态文件所在路径;mylib,定制的Python库所在路径。 mysite 中为网站代码,其中又有四个目录: ctrl,control的缩写,这里写页面相关的逻辑。 model,操作数据库的后台逻辑代码所在目录。 modeltest,后台逻辑单元测试代码所在目录。 htm,放置网页模板。 util,公用的函数,如分页等。 接下来,开始写一个基本功能 -- 用户注册。 大家可以先用SVN检出 http://mayoufour.googlecode.com/svn/trunk/stdyun/ 。 这里是最终项目的代码,可以边学边对比。 运行它需要配置一些数据库,参见 3.3小节,数据库,ORM 与 单元测试 。 配置完数据库,导入stdyun/mytool/create_table下的tabel.sql,便可以运行。导入的命令如下:easy_install -U mypy
def application(environ, start_response): status = '200 OK' response_headers = [('Content-type','text/plain')] start_response(status, response_headers) return ['Hello']
python -m mypy.cmd new ppmm
init_app.pydev_server.pysimple_server.py
myconfmyfilemylibmysite
ctrlmodelmodeltesthtmutil
mysql -u用户名 -p密码 数据库名 < tabel.sql
- http://kanrs.com/3_0.html
- http://moviesoon.com/trailers.html
- http://blog.nosqlfan.com/html/3813.html
- http://hi.baidu.com/edeed/blog/item/3e92277f7a15830028388aec.html
- http://www.w3cplus.com/css3/css3-3d-transform.html
- http://www.huihoo.com/telecom/sip_rtp_stack.html
- http://www.sysinternals.com/index.html
- http://smdnwx.googlepages.com/home.html
- http://www.cncode.com/article/article_9_1.html
- http://blog.tomatolei.com/?275753/action_viewspace_itemid_68.html
- http://www.tusc.com.au/tutorial/html/
- http://www.87717.com/sql/sql_9202.html
- WebNoteEditor http://www.webnoteeditor.com/Products.html
- http://www.blogmura.com/profile/170536.html
- http://www.itwis.com/html/net/c/
- http://prototype-window.xilinus.com/themes.html
- http://bigwhite.blogbus.com/logs/1347304.html
- http://pop.pcpop.com/090307/5131884.html
- 逐步改善,设计优秀API
- 理解ThreadLocal
- .net 4.0 dll运行于UG NX多个版本的方法
- 一首词..来自Songtaste
- 互斥运行一个程序实例
- http://kanrs.com/3_0.html
- [考试系统] 之 侧边栏
- Scala By Example: Case 类与模式匹配 习题
- View UIImageView
- 云计算的一些想法
- oracle的内存分配-内存分配(SGA和PGA)SGA和PGA结构图
- 更改 UITableViewCell 背景
- 有感—基础的重要
- 驱动加载工具(InstDrv - V1.3中文版)