Python Web 开发框架 Pylons

简介:

3. Pylons

3.1. Getting Started with Pylons

3.1.1. Installing

[neo@development ~]$ curl http://pylonshq.com/download/1.0/go-pylons.py | python - mydevenv
[neo@development ~]$ source mydevenv/bin/activate
(mydevenv)[neo@development ~]$

(mydevenv)[neo@development ~]$ paster create -t pylons helloworld	
	

Running the application

(mydevenv)[neo@development ~]$ cd helloworld
(mydevenv)[neo@development helloworld]$ paster serve --reload development.ini
Starting subprocess with file monitor
Starting server in PID 26895.
16:38:39,051 INFO  [paste.httpserver.ThreadPool] Cannot use kill_thread_limit as ctypes/killthread is not available
serving on http://127.0.0.1:5000	
	

create a controller

(mydevenv)[neo@development helloworld]$ paster controller hello
Creating /home/neo/helloworld/helloworld/controllers/hello.py
Creating /home/neo/helloworld/helloworld/tests/functional/test_hello.py	
	

http://192.168.3.9:5000/hello/index

3.1.2. Debian/Ubuntu

$ sudo apt-cache search pylons
$ sudo apt-get install python-pylons
$ paster create -t pylons helloworld
/usr/lib/pymodules/python2.6/pylons/templating.py:610: UserWarning: Unbuilt egg for setuptools [unknown version] (/usr/lib/python2.6/dist-packages)
  Engine = entry_point.load()
Selected and implied templates:
  Pylons#pylons  Pylons application template

Variables:
  egg:      helloworld
  package:  helloworld
  project:  helloworld
Enter template_engine (mako/genshi/jinja2/etc: Template language) ['mako']:
Enter sqlalchemy (True/False: Include SQLAlchemy 0.5 configuration) [False]: True
Creating template pylons
Creating directory ./helloworld
  Recursing into +package+
    Creating ./helloworld/helloworld/
    Copying __init__.py_tmpl to ./helloworld/helloworld/__init__.py
    Recursing into config
      Creating ./helloworld/helloworld/config/
      Copying __init__.py_tmpl to ./helloworld/helloworld/config/__init__.py
      Copying deployment.ini_tmpl_tmpl to ./helloworld/helloworld/config/deployment.ini_tmpl
      Copying environment.py_tmpl to ./helloworld/helloworld/config/environment.py
      Copying middleware.py_tmpl to ./helloworld/helloworld/config/middleware.py
      Copying routing.py_tmpl to ./helloworld/helloworld/config/routing.py
    Recursing into controllers
      Creating ./helloworld/helloworld/controllers/
      Copying __init__.py_tmpl to ./helloworld/helloworld/controllers/__init__.py
      Copying error.py_tmpl to ./helloworld/helloworld/controllers/error.py
    Recursing into lib
      Creating ./helloworld/helloworld/lib/
      Copying __init__.py_tmpl to ./helloworld/helloworld/lib/__init__.py
      Copying app_globals.py_tmpl to ./helloworld/helloworld/lib/app_globals.py
      Copying base.py_tmpl to ./helloworld/helloworld/lib/base.py
      Copying helpers.py_tmpl to ./helloworld/helloworld/lib/helpers.py
    Recursing into model
      Creating ./helloworld/helloworld/model/
      Copying __init__.py_tmpl to ./helloworld/helloworld/model/__init__.py
      Copying meta.py_tmpl to ./helloworld/helloworld/model/meta.py
    Recursing into public
      Creating ./helloworld/helloworld/public/
      Copying bg.png to ./helloworld/helloworld/public/bg.png
      Copying favicon.ico to ./helloworld/helloworld/public/favicon.ico
      Copying index.html_tmpl to ./helloworld/helloworld/public/index.html
      Copying pylons-logo.gif to ./helloworld/helloworld/public/pylons-logo.gif
    Recursing into templates
      Creating ./helloworld/helloworld/templates/
    Recursing into tests
      Creating ./helloworld/helloworld/tests/
      Copying __init__.py_tmpl to ./helloworld/helloworld/tests/__init__.py
      Recursing into functional
        Creating ./helloworld/helloworld/tests/functional/
        Copying __init__.py_tmpl to ./helloworld/helloworld/tests/functional/__init__.py
      Copying test_models.py_tmpl to ./helloworld/helloworld/tests/test_models.py
    Copying websetup.py_tmpl to ./helloworld/helloworld/websetup.py
  Copying MANIFEST.in_tmpl to ./helloworld/MANIFEST.in
  Copying README.txt_tmpl to ./helloworld/README.txt
  Copying development.ini_tmpl to ./helloworld/development.ini
  Recursing into docs
    Creating ./helloworld/docs/
    Copying index.txt_tmpl to ./helloworld/docs/index.txt
  Copying ez_setup.py to ./helloworld/ez_setup.py
  Copying setup.cfg_tmpl to ./helloworld/setup.cfg
  Copying setup.py_tmpl to ./helloworld/setup.py
  Copying test.ini_tmpl to ./helloworld/test.ini
Running /usr/bin/python setup.py egg_info

		

配置host监听地址

$ cd helloworld
$ vim development.ini		
host = 0.0.0.0
		

启动服务

$ paster serve --reload development.ini
		

3.2. config/routing.py

url routing 做为静态化让所有后缀加上.html

(mydevenv)[neo@development helloworld]$ vim helloworld/config/routing.py

    map.connect('/{controller}/{action}.html')
    map.connect('/{controller}/{action}/{id}.html')
	

3.3. mako template

http://www.makotemplates.org/

3.3.1. include

		
<%include file="header.html"/>

    hello world

<%include file="footer.html"/>
		
		

传递参数

		
<%include file="toolbar.html" args="current_section='members', username='ed'"/>
		
		

3.3.2. inherit

		
<%inherit file="base.html"/>
		
目录
相关文章
|
2月前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
2月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
34 4
|
2月前
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
|
15天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
44 7
|
13天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
49 2
|
28天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
2月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
2月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
42 2
|
2月前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
41 1
|
2月前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
106 3