- 部分 I. Python 入门
- 第 1 章 Python 入门
- 第 2 章 Python Package Index (PyPI)
- 第 3 章 Python 模块
- 第 4 章 数据类型
- 第 5 章 数据结构
- 第 6 章 Class
- 第 7 章 Input/Output
- 第 8 章 Pipe
- 第 9 章 Library
- 9.2. 随机数
- 9.3. Python 多线程
- 9.13. syslog
- 9.5. Socket
- 9.6. subprocess
- 9.7. YAML
- 9.8. Daemon
- 9.9. python-memcached
- 9.10. Pyro - Pyro is short for PYthon Remote Objects
- 9.11. Python Imaging Library
- 9.12. getopt – Command line option parsing
- 9.14. python-subversion
- 9.15. SimpleHTTPServer
- 9.16. fuse-python.x86_64 : Python bindings for FUSE - filesystem in userspace
- 9.17. Network
- 9.18. Python-spdylay - Spdylay Python Extension Module
- 9.19. mechanize
- 9.20. Dominate
- 第 10 章 Frameworks
- 第 12 章 终端环境开发
- 部分 II. Python 数据分析
- 第 13 章 Crawler
- 第 14 章 Scrapy - Python web scraping and crawling framework
- 第 15 章 Pandas - Python Data Analysis Library
- 第 16 章 股票
- 第 17 章 数据可视化
- 部分 III. 人工智能 AI
- 第 18 章 OCR
- 第 19 章 语音处理
- 第 20 章 视频
- 第 21 章 人脸识别
- 第 22 章 自然语言处理
- 第 23 章 自动化运维
- 第 24 章 办公自动化
- 第 25 章 OpenCV
- 第 26 章 图形开发
- 第 27 章 3rdparty toolkit
- 第 29 章 实用代码
- 第 30 章 FAQ
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
10.4. Pyramid
10.4. Pyramid
10.4.1. Getting Started
$ sudo apt-get install python-setuptools $ sudo easy_install -U pyramid
10.4.1.1. virtualenv - create virtual Python instances
sudo apt-get install python-virtualenv virtualenv --no-site-packages myenv cd myenv $ sudo easy_install -U pyramid
10.4.1.2. Hello world
$ vim test/helloworld.py from pyramid.config import Configurator from pyramid.response import Response from paste.httpserver import serve def hello_world(request): return Response('Hello world!') def goodbye_world(request): return Response('Goodbye world!') if __name__ == '__main__': config = Configurator() config.add_view(hello_world) config.add_view(goodbye_world, name='goodbye') app = config.make_wsgi_app() serve(app, host='0.0.0.0')
$ python test/helloworld.py serving on 0.0.0.0:8080 view at http://127.0.0.1:8080 $ curl http://127.0.0.1:8080/ Hello world! $ curl http://127.0.0.1:8080/goodbye Goodbye world!
10.4.1.3. MongoDB
$ sudo apt-get install python-pymongo python-gridfs
vim development.ini [app:test] # mongodb settings ... db_uri = mongodb://localhost/ db_name = test
测试
from pyramid.config import Configurator from pyramid.events import subscriber from pyramid.events import NewRequest from gridfs import GridFS import pymongo def main(global_config, **settings): config = Configurator(settings=settings) db_uri = settings['db_uri'] conn = pymongo.Connection(db_uri) config.registry.settings['db_conn'] = conn config.add_subscriber(add_mongo_db, NewRequest) config.add_route('dashboard', '/') # other routes and more config... config.scan('myapp') return config.make_wsgi_app() def add_mongo_db(event): settings = event.request.registry.settings db = settings['db_conn'][settings['db_name']] event.request.db = db event.request.fs = GridFS(db)
@view_config(route_name='dashboard', renderer="myapp:templates/dashboard.pt") def dashboard(request): vendors = request.db['vendors'].find() return {'vendors':vendors}
10.4.2. Creating a Pyramid Project
$ paster create -t pyramid_starter test $ cd test $ sudo python setup.py develop $ paster serve development.ini
10.4.2.1. mongodb
vim development.ini [app:test] # mongodb settings ... mongodb_uri = mongodb://localhost/ mongodb_name = test
vim test/resources.py from gridfs import GridFS import pymongo mongo_conn = pymongo.Connection() def add_mongo(event): req = event.request req.db = mongo_conn['test'] req.fs = GridFS(req.db) class Root(object): def __init__(self, request): self.request = request
$ vim test/__init__.py def main(...): ... config.add_subscriber('foo.resources.add_mongo', 'pyramid.events.NewRequest') ...
例 10.1. __init__.py
from pyramid.config import Configurator from test.resources import Root def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ config = Configurator(root_factory=Root, settings=settings) config.add_subscriber('test.resources.add_mongo','pyramid.events.NewRequest') config.add_view('test.views.my_view', context='test:resources.Root', renderer='test:templates/mytemplate.pt') config.add_static_view('static', 'test:static') return config.make_wsgi_app()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论