ブラウザで動かす。bottleで作るTwitterクライアント(POSTのみ
Djangoに挫折してとりあえず自分が理解できるフレームワークをと。
そこでbottleに行き着きました。
bottle.pyというスクリプトファイルだけで出来ているフレームワーク。
簡易的なWebアプリなら直ぐに実行できそうな気にさせてくれます。
というわけでブラウザでツイートを送信してみました。
#!/user/bin/env python
# -*- coding: utf-8 -*-
from bottle import route, run, template, request
from requests_oauthlib import OAuth1Session
import json
import sys, codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
@route("/")
def post():
return template("post")
@route("/show", method="GET")
def msg():
msg = request.query.msg
C_KEY = "****************************"
C_SECRET = "****************************"
A_KEY = "****************************"
A_SECRET = "****************************"
url = "https://api.twitter.com/1.1/statuses/update.json"
params = {"status": msg,"lang": "ja"}
tw = OAuth1Session(C_KEY,C_SECRET,A_KEY,A_SECRET)
req = tw.post(url, params = params)
return template("show", msg=msg)
run(host="localhost", port="8000", debug=True, reloader=True)
次はテンプレートを作ります。
bottle.py と index.pyと同一ディレクトリに viewsというフォルダを作り、
以下のHTMLファイルをpost.htmlとして保存します。
<!DOCTYPE html>
<html lang=ja>
<head>
<meta charset="UTF-8">
<title>ツイートしよう</title>
</head>
<body>
<h1>ツイートを入力しよう</h1>
<form method="GET" action="/show">
<p>ツイート:
<input type="text" name="msg"></p>
<input type="submit" value="送信する">
</body>
</html>
同様にツイート完了画面を作るので、上記HTMLファイルと同じviewsフォルダにshow.htmlとして保存します。
<!DOCTYPE html>
<html lang=ja>
<head>
<meta charset="UTF-8">
<title>ツイート結果</title>
</head>
<body>
<h1>ツイート完了!</h1>
<p>あなたのツイート: {{msg}} <p>
<a href="/">Back</a>
</p>
</body>
</html>
ターミナルからindex.pyを実行して、
http://127.0.0.1:8000/
にアクセス。おしまい。
ちなみにbottleのテンプレートでは、
% if ~:
や
<%
for i in s:
print i
%>
などと、%の間はPythonのコードを記載することが可能。
Djangoバージョンも書きました。
http://qiita.com/Gen6/items/735245423b65698428be
Author And Source
この問題について(ブラウザで動かす。bottleで作るTwitterクライアント(POSTのみ), 我々は、より多くの情報をここで見つけました https://qiita.com/Gen6/items/ee33eb51fbeb969bb9db著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .