Chryypy MySQLデータベース環境構築へのアクセス
9704 ワード
Chryypy MySQLデータベース環境構築へのアクセス
1、python-2.6.1をインストールする.msi
2、 CherryPy-3.0.0beta.win32.exe
3、 MySQL-python-1[1].2.2.win32-py2.6.exe
4、 mysql-essential-5.1.31-win32.zip
5、MySQLグラフィックス管理ツールNavicat+8[1].0漢化解読版.rar
上記のソフトウェアを順次インストールすると、基本的なchryypyの環境が構築されます.
簡単なテストを行います.次のスクリプトを実行します.
6、データベース表の設計
名前タイププライマリ・キー
Date dateは
Value char No
7、プログラムソース:
import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.quickstart(HelloWorld())
次に、ブラウザのアドレスバーを入力します.http://localhost:8080/出力を見たらハローワールド!環境構築が成功したことを証明します.
CherrpyのRest化アクセスデータベースの例:
# -*- coding: cp936 -*-
import cherrypy
import MySQLdb
class Web:
def default(self,year='',month='',day=''):
#データベース接続
conn = MySQLdb.Connection('127.0.0.1', 'root', '123', 'test')
cursor = conn.cursor()
#データの有無判断
dataFlag = 0
self.y=year
self.m=month
self.d=day
if self.y!='':
#出力xmlファイル
xml=file('data.xml','w')
if self.m!='':
if self.d!='':
#年、月、日の全ての入力は、当日のデータである
date = '-'.join([self.y,self.m,self.d])
sql = "select Value from test where Date = '%s'"%date
cursor.execute(sql)
cds = cursor.fetchall()
xml.write(''+'/n')
xml.write('
for row in cds:
for r in row:
xml.write(' '+'
xml.write(' '*2+'
dataFlag = 1
xml.write('
xml.close()
cursor.close()
conn.close()
if dataFlag == 1:
return self.y,'年',self.m,'月',self.d,'日のデータはdataに書き込まれた.xml'
else:
return self.y,'年',self.m,'月',self.d,'日にデータがない!
#年、月に照会された当月のデータのみ入力
else:
date = '-'.join([self.y,self.m])
sql = "select * from test where Date like '%s%%'"%date
cursor.execute(sql)
cds = cursor.fetchall()
xml.write(''+'/n')
xml.write('
xml.write(' '+'
i = 0
for row in cds:
for r in row:
if i%2==0:
xml.write(' '*2+'
i=i+1
else:
xml.write(' '*3+'
i=i+1
dataFlag = 1
xml.write(' '+'
xml.write('
xml.close()
cursor.close()
conn.close()
if dataFlag == 1:
return self.y,'年',self.m,'月のデータはdataに書き込まれた.xml'
else:
return self.y,'年',self.m,'月にはデータがありません!
else:
#年のみを入力するときにクエリされるのは通年のデータです
sql = "select * from test where Date like '%s%%'"%self.y
cursor.execute(sql)
cds = cursor.fetchall()
xml.write(''+'/n')
xml.write('
xml.write(' '+'
i = 0
for row in cds:
for r in row:
if i%2==0:
xml.write(' '*2+'
i=i+1
else:
xml.write(' '*3+'
i=i+1
dataFlag = 1
xml.write(' '+'
xml.write('
xml.close()
cursor.close()
conn.close()
if dataFlag == 1:
return self.y,'年のデータはdataに書き込まれている.xml'
else:
return self.y,'年にはデータがありません!
else:
return'データをクエリーする時間を入力してください!
default.exposed = True
class Application:
data = Web()
if __name__ == '__main__':
cherrypy.root = Application()
cherrypy.quickstart(cherrypy.root)
上のプログラムを実行すると、サーバが起動します.
次に、クエリー・アクセスを行います.たとえば、http://localhost:8080/data/2009/03/03これがその日のデータを調べることです.