为什么想学习pylons?
打算写一个抓新闻的网站,可以把那些新闻打包为纯文本,下载到pda上慢慢看.
行事先利其器,先选一个框架.
以前用了一段时间的Django,觉得它的自动化程度比较高,很适合快速开发,但是有利就有弊,相对而言,我觉得其不足有:
1.其ORM对于一些简单的应用还是不错,但是对于多表的操作就没有sqlalchemy优雅.
2.模板和代码完全分离从出发点看来是不错,但是这样做带来的缺点就
a.编写麻烦
b.会有许多琐碎的自定义标签
此外,对于我这种页面和代码统统负责的孤家寡人来说有点画蛇添足
我的观点是,总有许多一次性的代码,把这些代码扔进页面是不错的选择.
听说mako效率不错,想看看
3.newform有种鸡肋的感觉
4.文件上传集成到Model中的做法不是很灵活
5.url映射不够智能,太繁琐
等等
于是,去看看pylons,听说它是自由度比较高.
我先从svn中checkout出pylons的源代码,安装,如同python的安装惯例
setup.py install
然后又去checkout出sqlalchemy和mako的代码装上(追新族:),方法类似.(mako好像自带了,可以不装,不过不是最新版)
我列举一下svn地址,以便安装
pylons
http://pylonshq.com/svn/Pylons/trunk
mako
http://svn.makotemplates.org/mako/trunk
sqlalchemy
http://svn.sqlalchemy.org/sqlalchemy/trunk
然后将python安装路径下的Scripts目录加入系统的PATH环境变量,正式开工.
先创建项目,在命令行下切换到一个合适的路径,执行如下的命令,其中shot_net为项目名,可以自己取.
paster create --template=pylons shot_net
它会自动的创建一个项目的目录,我们cd进入该目录,执行
paster serve --reload development.ini
启动它自带的服务器,命令行中会告诉你端口,可以到development.ini中修改(如下),我修改为19809.
[server:main]
use = egg:Paste#http
host = 0.0.0.0
port = 19809
现在访问那个端口,可以看到这个网页
"Welcome to your Pylons Web Application"
可以看到其下当前路径下有一个与项目同名的目录,我们进入该目录下的public目录。
public目录是用来查找静态文件的。
新建一个index.html文件替换原来那个,刷新,ok,可以看到我们自己的index.html文件了。
也可以通过
http://127.0.0.1:19809/index.html
访问
然后类似下面,创建一个controller
D:\myWay\project\shot_net\shot_net>paster controller get_html
Creating D:\myWay\project\shot_net\shot_net\controllers\get_html.py
Creating D:\myWay\project\shot_net\shot_net\tests\functional\test_get_html.py
现在访问
http://127.0.0.1:19809/get_html/
就可以看到
Hello World
这个路径是自动映射的,真不错:)
然后修改shot_net/config/routing.py中的make_map,加上这么一句,注意要加在其他的connect之前
map.connect('', controller='get_html', action='index')
删除那个index.html,现在http://127.0.0.1:19809/也可以看到Hello World了.
然后照搬教程,在GetHtmlController类中添加如下的函数
这个函数中的c是用来向模板传递变量的东西,满hacker的:)
def serverinfo(self):
import cgi
import pprint
c.pretty_environ = cgi.escape(pprint.pformat(request.environ))
c.name = 'The Black Knight'
return render('/serverinfo.mako')
到templates目录下新建一个serverinfo.mako模板(我统一用utf-8编码,不加BOM)
<h2>
Server info for ${request.host}
</h2>
<p>
The URL you called: ${h.url_for()}
</p>
<p>
The name you set: ${c.name}
</p>
<p>The WSGI environ:<br />
<pre>${c.pretty_environ}</pre>
</p>
访问
http://127.0.0.1:19809/get_html/serverinfo
OK,可以看到一堆信息.
仔细看看,有意思的有
'HTTP_ACCEPT_ENCODING': 'gzip,deflate',
表明网页是被压缩了的,自带这个功能,不错不错:)
OK,先看这么多.我去写一个页面模板.
分享到:
- 2008-01-01 01:06
- 浏览 9513
- 评论(3)
- 论坛回复 / 浏览 (3 / 6532)
- 查看更多
相关推荐
可用于UnityVR开发,3D游戏...1-导入Unity后将图片的Shape转换成cube形式, 2-创建空Material,并转换成Cube/skybox形式, 3-将图片拖入新建的SkyboxMaterial, 4-用刚创建的Material代替项目中原本的系统默认Skybox
In this book, cofounder and lead developer James Gardner brings you a comprehensive introduction to Pylons, the web framework that uses the best of Ruby, Python, and Perl and the emerging WSGI ...
1. **MVC架构**:Pylons遵循模型-视图-控制器(MVC)设计模式,将应用程序的逻辑分为三个独立的部分,使得代码结构清晰,易于维护。 2. **轻量级**:Pylons是一个轻量级框架,它不包含太多内置功能,而是依赖于其他...
3. **第一个Pylons项目**:引导读者创建第一个“Hello, World!”应用,解释基础的项目结构和配置文件。 4. **路由系统**:讲解Pylons的URL路由机制,如何定义和映射URL到控制器。 5. **控制器与视图**:深入理解...
在Python Web开发中,Pylons是一个轻量级、高性能的框架,它以其高度可定制性而受到开发者喜爱。Pylons采用MVC(Model-View-Controller)设计模式,允许开发者灵活选择不同的库来实现各个层的功能。在本例子中,我们...
1. **Pylons框架介绍**:解释了Pylons的基本概念、架构以及它在Python Web开发中的地位。 2. **环境搭建与配置**:介绍了如何安装Pylons及其依赖库,并设置了开发环境。 3. **Web开发基础**:包括HTML、CSS、...
根据提供的文件信息,我们可以推断出这是一本关于Pylons框架的技术书籍,作者是James Gardner,出版于2008年。以下是对该书的关键知识点进行的详细解读。 ### 关键知识点概述 #### 1. **Pylons 框架简介** - **...
资源来自pypi官网。 资源全名:Pylons-0.8.2-py2.3.egg
Gardner -- The Definitive Guide to Pylons -- 2008 -- code.7z
Pyramid 是一款现代 Python Web 开发框架,作为 Pylons 框架的升级版本,它不仅继承了原有框架的优点,还进行了诸多改进与增强。根据提供的文件描述,我们可以提炼出以下几个关键知识点: 1. **Pyramid 的独特之处*...
塔架 Pylons是一个快速的Web应用程序开发框架。 笔记定向塔已与repoze.bfg合并,并且现在处于仅维护模式。 强烈建议新项目从新的合并的Web框架。安装。 如果要从源代码安装,可以运行以下命令: $ python setup.py ...
pyramid_debugtoolbar pyramid_debugtoolbar提供了一个调试工具栏,在您开发Pyramid应用程序时非常有用。 请注意, pyramid_debugtoolbar是Michael van Tellingen的flask-debugtoolbar (其本身是从Rob Hudson的...
Django,Pylons等几个方面,最后一章也就是第九章,介绍了一些具体例子,也需要 数据库、网页等方面配合。都是俺暂时用不到的。 前几个章节适合大多数Python Coder使用俺就不剧透了。 此书具有Packt 出版书的一般...
Django:一个基于Python的开源Web框架,提供了一个完整的管理系统框架。 GitHub:https://github.com/django/django Flask-Admin:一个基于Flask的Web框架,提供了一个简单的管理系统框架。 GitHub:...
Web Server:JCR使用Pylons内建的Web server,不需要其他Server。 依赖的软件: Python 2.4 or later (2.5+ recommended) Pysqlite(DB-API 2.0 interface for SQLite databases) Setuptools Pysvn 注意:下载...