`
zuroc
  • 浏览: 1315075 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

pylons建站日记1_第一次亲密接触

阅读更多
为什么想学习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,先看这么多.我去写一个页面模板.

分享到:
评论
3 楼 zuroc 2008-12-02  
[zuroc@zgu pylons]$ hg pull
pulling from http://pylonshq.com/hg/pylons-dev/
2 楼 woimovie 2008-12-02  
http://pylonshq.com/svn/Pylons/trunk
这个地址无效了。
1 楼 luqingcheng 2008-05-20  
我觉得mako的语法太那个了,我用的是genshi,用的是纯的xml,可以在浏览器里浏览,这样的话页面设计和业务逻辑的耦合度就比较低。

相关推荐

    塔架pylons_VR游戏开发_天空盒子_Skybox_高清_16K_EXR

    可用于UnityVR开发,3D游戏...1-导入Unity后将图片的Shape转换成cube形式, 2-创建空Material,并转换成Cube/skybox形式, 3-将图片拖入新建的SkyboxMaterial, 4-用刚创建的Material代替项目中原本的系统默认Skybox

    [James_Gardner]_The_Definitive_Guide_to_Pylons(z-lib.org).rar

    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 ...

    Python库 | Pylons-0.8.2-py2.3.egg

    1. **MVC架构**:Pylons遵循模型-视图-控制器(MVC)设计模式,将应用程序的逻辑分为三个独立的部分,使得代码结构清晰,易于维护。 2. **轻量级**:Pylons是一个轻量级框架,它不包含太多内置功能,而是依赖于其他...

    借着今天的大好日子,挖一个Pylons教程的坑

    3. **第一个Pylons项目**:引导读者创建第一个“Hello, World!”应用,解释基础的项目结构和配置文件。 4. **路由系统**:讲解Pylons的URL路由机制,如何定义和映射URL到控制器。 5. **控制器与视图**:深入理解...

    Python Web框架Pylons中使用MongoDB的例子

    在Python Web开发中,Pylons是一个轻量级、高性能的框架,它以其高度可定制性而受到开发者喜爱。Pylons采用MVC(Model-View-Controller)设计模式,允许开发者灵活选择不同的库来实现各个层的功能。在本例子中,我们...

    Apress.the.Definitive.Guide.to.Pylons.Dec.2008

    1. **Pylons框架介绍**:解释了Pylons的基本概念、架构以及它在Python Web开发中的地位。 2. **环境搭建与配置**:介绍了如何安装Pylons及其依赖库,并设置了开发环境。 3. **Web开发基础**:包括HTML、CSS、...

    Gardner -- The Definitive Guide to Pylons -- 2008.pdf

    根据提供的文件信息,我们可以推断出这是一本关于Pylons框架的技术书籍,作者是James Gardner,出版于2008年。以下是对该书的关键知识点进行的详细解读。 ### 关键知识点概述 #### 1. **Pylons 框架简介** - **...

    PyPI 官网下载 | Pylons-0.8.2-py2.3.egg

    资源来自pypi官网。 资源全名:Pylons-0.8.2-py2.3.egg

    Gardner -- The Definitive Guide to Pylons -- 2008 -- code.7z

    Gardner -- The Definitive Guide to Pylons -- 2008 -- code.7z

    Pyramid英文文档.pdf

    Pyramid 是一款现代 Python Web 开发框架,作为 Pylons 框架的升级版本,它不仅继承了原有框架的优点,还进行了诸多改进与增强。根据提供的文件描述,我们可以提炼出以下几个关键知识点: 1. **Pyramid 的独特之处*...

    pylons:Pylons框架,社区在Pylons项目的指导下得到了维护。 与repoze.bfg合并用于金字塔框架

    塔架 Pylons是一个快速的Web应用程序开发框架。 笔记定向塔已与repoze.bfg合并,并且现在处于仅维护模式。 强烈建议新项目从新的合并的Web框架。安装。 如果要从源代码安装,可以运行以下命令: $ python setup.py ...

    pyramid_debugtoolbar:金字塔调试工具栏

    pyramid_debugtoolbar pyramid_debugtoolbar提供了一个调试工具栏,在您开发Pyramid应用程序时非常有用。 请注意, pyramid_debugtoolbar是Michael van Tellingen的flask-debugtoolbar (其本身是从Rob Hudson的...

    Packt - Matplotlib for Python Developers

    Django,Pylons等几个方面,最后一章也就是第九章,介绍了一些具体例子,也需要 数据库、网页等方面配合。都是俺暂时用不到的。 前几个章节适合大多数Python Coder使用俺就不剧透了。 此书具有Packt 出版书的一般...

    code_review工具简介及安装

    8. **Web Server**:JCR使用Pylons内建的Web Server,无需额外的服务器。 #### 三、安装步骤 下面详细介绍如何在Windows环境下安装JCR: 1. **安装Python** - 下载并安装Python 2.4或更高版本(建议使用2.5+)。...

    以下是一些常用的管理系统源码资源: Django:一个基于Python的开源Web框架,提供了一个完整的管理系统框架 Git

    Django:一个基于Python的开源Web框架,提供了一个完整的管理系统框架。 GitHub:https://github.com/django/django Flask-Admin:一个基于Flask的Web框架,提供了一个简单的管理系统框架。 GitHub:...

    JCR_codereview

    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 注意:下载...

Global site tag (gtag.js) - Google Analytics