2010年05月08日

改行をbr要素に変更

改行をbr要素に変更。PHPで言うところのnl2brを実装したい

self.request.get('body').replace('\n','<br />\n')


replace関数を利用してbr要素に置き換えます。
ラベル:Replace
posted by ねこまんま at 03:20| Comment(0) | TrackBack(0) | 基本 | このブログの読者になる | 更新情報をチェックする

2010年05月03日

定数と変数のスコープ

まず、PHTYONには定数が存在しない。

タプル型とかを使うと定数もどきが作れるらしい。
これは、とりあえず必要になったら詳しく調べる。

変数のスコープは名前空間に依存する。

作成した変数が関数内なんかでも使えてしまう。

とりあえずの問題は解決したので、この2点は必要になったら詳しく調べるのでメモ書き。
posted by ねこまんま at 02:09| Comment(0) | TrackBack(0) | 基本 | このブログの読者になる | 更新情報をチェックする

テンプレートエンジンDjangoを利用する

GAE(Google App Engine)で標準で利用できるテンプレートエンジンDjangoを利用する際には引数にオブジェクトで値を引き渡します。

path = os.path.join(os.path.dirname(__file__), 'error.html')
self.response.out.write(template.render(path, {"error":"ログインに失敗しました"}))


テンプレートファイル内で値を取り出すには

{{ error }}


などと記述すればok
ラベル:GAE Django
posted by ねこまんま at 01:35| Comment(0) | TrackBack(0) | Django | このブログの読者になる | 更新情報をチェックする

2010年04月28日

関数を設定

PYTHONでは次のように関数を設定

def sum(n1, n2, n3, n4):
return n1 + n2 + n3 + n4
print sum(3, 5, 15, 8)

ラベル:Def return
posted by ねこまんま at 02:24| Comment(0) | TrackBack(0) | 基本 | このブログの読者になる | 更新情報をチェックする

条件分岐

PYTHONでの条件分岐は次のように記述

if 条件式1:
条件式1が真の時に実行する処理
elif 条件式2:
条件式1が偽で条件式2が真の時に実行する処理
elif 条件式3:
条件式1及び条件式2が偽で条件式3が真の時に実行する処理
else:
全ての条件式が偽の時に実行する処理


elseifではなくelifなので注意
ラベル:if elif else
posted by ねこまんま at 02:21| Comment(0) | TrackBack(0) | 基本 | このブログの読者になる | 更新情報をチェックする

2010年04月24日

Google App Engineでcookieを取り扱う

かなりめんどくさい。

まずは有効期限(expires)の設定

import datetime

expires_date = datetime.datetime.utcnow() + datetime.timedelta(365)
expires = expires_date.strftime("%d %b %Y %H:%M:%S GMT")


設定したexpiresを元にcookieを保存

self.response.headers.add_header(
'Set-Cookie',
'key=value; expires='+expires)


最後にcookieの取り出し

self.request.cookies.get('key', '')


posted by ねこまんま at 19:19| Comment(0) | TrackBack(0) | 基本 | このブログの読者になる | 更新情報をチェックする

2010年04月23日

GAE(Google App Engine)でtwitterのタイムラインを取得表示

GAE(Google App Engine)でpython-twittertwitterを利用してタイムラインを取得表示

import os
import twitter
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext.webapp import template
# twitter.Api.__init__ method for override.
def twitter_api_init_gae(self,
username=None,
password=None,
input_encoding=None,
request_headers=None):
import urllib2
from twitter import Api
self._cache = None
self._urllib = urllib2
self._cache_timeout = Api.DEFAULT_CACHE_TIMEOUT
self._InitializeRequestHeaders(request_headers)
self._InitializeUserAgent()
self._InitializeDefaultParameters()
self._input_encoding = input_encoding
self.SetCredentials(username, password)
# overriding API __init__
twitter.Api.__init__ = twitter_api_init_gae
class MainHandler(webapp.RequestHandler):
def get(self):
u = 'twitterアカウント'
p = 'twitterパス'
api = twitter.Api(username=u, password=p)
statuses = api.GetUserTimeline()
l = []
for s in statuses:
l.append(s.text.encode('utf-8'))
template_values = {
'list': l,
}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))
def main():
application = webapp.WSGIApplication([('/', MainHandler)],
debug=True)
util.run_wsgi_app(application)
if __name__ == '__main__':
main()


index.html

{% for l in list %}
{{ l }}
{% endfor %}


参考:GAE(Google App Engine)でpython-twitterを使ってタイムライン取得 : kishi-r.com
ラベル:twitter
posted by ねこまんま at 16:06| Comment(0) | 基本 | このブログの読者になる | 更新情報をチェックする

Pythonのコメント

1行コメントは#(シャープ)

import urllib2#hoge


複数行コメントは"""(ダブルクオーテーション×3)

"""
hogehoge
"""


インデント規則はコメントにも反映されるので注意

while True:
"""
hogehoge
"""

ラベル:コメント
posted by ねこまんま at 15:49| Comment(0) | 基本 | このブログの読者になる | 更新情報をチェックする

2010年04月21日

PYTHONでRSSを取得表示するメモ

PYTHONでRSSを取得表示するメモ

google.appengine.apiのurlfetchを利用してRSSのファイルを取得します。
DOMの解析はminidomを利用。minidomは日本語の取り扱いが少し弱いので、出力時はutf-8に変換を行う。(utf-8のファイルを取ってきているのに不思議)

from google.appengine.api import urlfetch
from xml.dom import minidom
print 'Content-Type: text/plain'
print ''
result = urlfetch.fetch("RSSのURL")
dom = minidom.parseString(result.content)
contents = dom.getElementsByTagName("content")
for content in contents:
print content.firstChild.data.encode('utf-8')
posted by ねこまんま at 12:23| Comment(0) | 基本 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。