1
在Google App Engine部署GAE不支持的Python包是,通常的做法是把包压缩成ZIP格式,Python支持zipimport来载入这个ZIP包,这里注意一点具体的压缩做法:
(1) "在要压缩的文件夹,以我为例,就是Quixote,单击右键,用7z压缩成Quixote.zip"
(2) 压缩包例除了以py为后缀的其他文件,比如pyc,vim的swap文件都要删除
2
为了在本地用GAE SDK测试和上传至GAE,先在网站的文件夹建立app.yaml,这里的内容如下:
application: 29boys
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: main.py
3
接下来是最关键的一个步骤,建立上面app.yaml里面的handler,main.py,对于Quixote来说,这个文件可以这样:
import logging,os,sys
import thread
quixote_path = "quixote.zip"
sys.path.insert(0,quixote_path)
from quixote.publish import Publisher,cleanup
from quixote.directory import Directory
from MiniSite import MyRoot
if os.name=='nt':
os.unlink=lambda :None
class ThreadedPublisher(Publisher):
is_thread_safe = True
def __init__ (self, root_namespace, config=None):
Publisher.__init__(self, root_namespace, config)
self._request_dict = {}
def _set_request(self, request):
self._request_dict[thread.get_ident()] = request
def _clear_request(self):
try:
del self._request_dict[thread.get_ident()]
except KeyError:
pass
def get_request(self):
return self._request_dict.get(thread.get_ident())
#This is the quixote website to be deploy
#For logging
#from quixote import logger
#Logger = logger.DefaultLogger(access_log="f://acess_log.txt",error_log="f://error_log.txt")
def create_publisher():
return ThreadedPublisher(MyRoot())
#return Publisher(RootDirectory())
import traceback
from quixote import get_wsgi_app
from google.appengine.ext.webapp import util
if quixote_path not in sys.path:
sys.path.insert(0, quixote_path)
try:
pub = create_publisher()
application = get_wsgi_app()
except TypeError,e:
pass
def main():
# Run the WSGI CGI handler with that application.
util.run_wsgi_app(application)
if __name__ == '__main__':
main()
4
最后,就是完善3里面代码所引入的Quixote applicaction:MiniSite了,我也附上一个用于测试的代码
#-*- coding: utf-8 -*-
"""The mini root directory for the Quixote demo.
"""
import sys
reload(sys)
from quixote.directory import Directory
from quixote.util import dump_request
#sys.setdefaultencoding('utf8')
class MyRoot(Directory):
_q_exports = [""]
def _q_index(self):
res = """<h1>xxx</h1>"""
return res
5 总结
把Quixote部署到GAE后,PTL模板不能使用,这个原因还不知道
分享到:
相关推荐
Quixote
在Quixote官方白皮书中已经详细描述了Quixote的工作模式。Quixote可以使用Python自代的http_server(主要用于开发调试)和与Apache(或lighttpd)配合使用。 Quixote与Apache配合使用方式如下: 使用CGI,文档中称为...
前端项目-quixote,CSS unit and integration testing
python的一个开发框架。非常不错的选择,貌似豆瓣是用它开发的。
python 的django,quixote,uliweb三个web框架
资源来自pypi官网。 资源全名:Quixote-3.1a1.tar.gz
资源来自pypi官网。 资源全名:etna_quixote-1.0.8-py3-none-any.whl
Quixote-CSS单元和集成测试 ... 例如,您可以测试一个元素是否在另一个元素下面,或一个元素与浏览器的视口的比较方式。 测试示例: // 'frame' is the Quixote test frame. See below for complete examples. var he
miguel-de-cervantes-saavedra_don-quixote_john-ormsby:Miguel de Cervantes撰写的Don Quixote标准电子书版本的Epub来源。 约翰·奥姆斯比(John Ormsby)翻译
吉x德关于Quixote是为提供支持的搜索服务, 是一个网络应用程序,可使通过本地和独立书商快速便捷地搜索书籍。API端点所有请求/响应的Content-Type是application / JSON。 方法小路回复得到/ books /?field = value...
python常见面试题集全文共7页,当前为第1页。python常见面试题集全文共7页,当前为...1:Django 2:Tornado 3:Bottle 4:web.py 5:web2py 6:Quixote(豆瓣网就是基于该框架开发的) 4、python几种流行框架的比较 htt
你卑微的仆人,堂吉x德·德拉·曼查(Don Quixote de la Mancha)语言支援所有Quixotic mods仅在英语中得到正式支持。 提供的任何语言均为社区翻译,我个人无法验证这些翻译的质量,准确性或内容。 此外,随着我...
QuijoteNet神经网络,用于分析Don Quixote的文本并能够从一小串字符生成文本。 人工智能是西班牙大部分地区乃至世界上最新,最鲜为人知的地区之一。 对于正在寻找人工智能和神经网络课程的任何人来说,很难找到能...
KSZ9031RNXIA器件手册,最新版,免费下载。器件介绍:千兆以太网收发器,支持RGMII接口,支持10/100/1000 Mbps以太网连接
利用计算机内部8254、8259,更改内部中断向量表,驱动PCI总线外扩的8254产生PWM波,再通过CPLD进行mux。同时读取欧姆龙500线编码器返回数值,进行PID控制。现在展示的是汇编代码。
可参考。使用超市管理系统的目的就是使用最少的人力,来完成超市中的日常工作。一个典型的超市管理系统,除了应该完成超市中必要的销售工作外,还应该具有后台管理的功能。
2DLDA 人脸识别 很好用 算法时间短