Google App Engine Channel API 初体验
0 个评论
1. channel api的id分成key与channel api
channel api是给客户端的,对于服务器没有什么用。
而key是服务器端的,服务器只要有key就可以了
流程大约是这样
a)创建
key = md5(str).hexdigest() #要限制在64位以内
channel_id = channel.create_channel(key)
b)
然后
channel.send_message(key, message) 发...
阅读全文
Appengine 非本机访问测试
0 个评论
App Engine (Python)在本地测试运行时, 默认绑定了localhost 所以当你想要通过虚拟机或者其它机器访问你的程序时就会出问题无法访问的情况。
其实只要有点IP基础知识的人就可以想到将IP换成是0.0.0.0就可以让服务与IP无关。
所以我们可以在运行时加上以下的参数:
–address=0.0.0.0
这样就可以让不同...
阅读全文
Python的缩进引起的BUG
2 个评论
if module == 'modify':
user = self.getUser()
temp = {
'name': user.username,
'contact': user.contact,
'email': user.email,
'intro': user.intro
}
self.display('user_modify.html', temp)
return
当我把 temp的}向外移动...
阅读全文
将tornado的模板用jinja2代替
0 个评论
tornado的模板对路径的支持不好。
在Windows平台下面就没有办法用了。
所以需要第三方的模板来支持,同时由于Django是python目前最流行的框架。
考虑到方便移植,我选择了jinja2。
这个与django类似的模板系统。
它的好处是不用象django那样需要将django的整个栈都加进来。
下面是它的基本使用方法:
from ji...
阅读全文
python 2.6 无法确定得到当前文件的路径
0 个评论
1. os.getcwd()跟当前的环境有关系。返回值并不一定是你想要的。
2. os.path.dirname(__file__)可能为空
3. 解决的办法是创建一个下级包,比如abc
import abc
path = os.path.dirname(abc.__file__)
这样可以得到包含 abc的路径。
去掉abc就可以得到当前执行文件的路径。
Linux下面可以这样实现:
path = path...
阅读全文
Elixir下实现OneToOne关系
0 个评论
在实现Elixir下OneToOne关系时,
一开始使用的形式是:
class A():
b = OneToOne(‘B’, inverse=’a')
class B():
a = OneTOOne(‘A’, inverse=’b')
发现编译一直无法通过。
然后使用:
class A():
b = OneToOne(‘B’, inverse=’a')
class B():
a =...
阅读全文
tornado web, python 的 epoll 异步web解决方案
1 个评论
主站 tornadoweb.org已经被墙,
appengine地址:
http://facebook-tornadoweb.appspot.com/
tornado是编写python下快速的web服务器的基础。
阅读全文
Python实现的HTTP Server Push的代码
0 个评论
#!/usr/bin/python
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
from datetime import datetime
import time
BOUNDARY = '####DATA####'
SEND_BOUNDARY = '--' + BOUNDARY + '\n'
class MyServer(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200, 'OK')
...
阅读全文
很不喜欢python的缩进
1 个评论
python作为一个脚本语言具有非常强大的社区支持。
语言本身也是简单易学。
还可以用于google的appengine的开发。
并且基于python开发的douban也是一个非常成功的网站之一。
从语言本身我觉得没有什么可以指责的。
但是作为个人来讲,我对于python的缩进来区分代码段的做法不以为然。
首先,现在很多语言的工具...
阅读全文
python 下的trim,删除前后的空白字符
0 个评论
1。删除前后的空白字符
>>> str = ” a b c d ”
>>> str.strip()
‘a b c d’
2。删除左边的空白
>>> str = ” a b c d ”
>>> str.lstrip()
‘a b c d ‘
3。删除右边的空白
>>> str = ” a b c d ”
>>> ...
阅读全文
python得到服务器的http头
0 个评论
import httplib
conn=httplib.HTTPConnection("www.sina.com")
conn.request("GET", "/")
r=conn.getresponse()
r.getheaders() #获取所有的http头
r.getheader("content-length") #获取特定的头
>>> conn=httplib.HTTPConnection(“www.sina.com.cn”)
>>> conn.request(“GET”, “/”)
>>> r=conn.getresponse...
阅读全文
解决python编码UnicodeDecodeError异常的办法
0 个评论
很多时候,我们会碰到包含有错误编码的字符串,这个时候如果我们直接使用decode解码,
就会出现UnicodeDecodeError异常。
但是decode实际上有第二个参数。
这个参数用于指定异常的处理方式。
因为decode的函数原型是decode([encoding], [errors='strict']),可以用第二个参数控制错误处理的策略,默认的参数就...
阅读全文
指定python源文件的编码
0 个评论
根据pep 0263,
http://www.python.org/dev/peps/pep-0263/
有下面三种写法:
1.
# coding=
2.
#!/usr/bin/python
# -*- coding: -*-
3.
#!/usr/bin/python
# vim: set fileencoding= :
更准确的说是源文件的第一行或者第二行需要符合下面的正则:
“coding[:=]\s*([-\w.]+)”
阅读全文
Google App Engine下得到访问IP的方法
0 个评论
1.采用python的wsgi的办法
ip = os.eniron['REMOTE_ADDR']
2.采用appengine 自己的办法
ip = self.request.remote_addr
阅读全文