db.pyに基づいて、他のデータベース操作のための書込みコード:#ブログを書く準備ができてのpython、初日を学ぶ
1)Pythonのコードを
#!/ usr / binに/ envをPythonの # - * -コーディング:UTF-8 - * - '' ' v1.0のブログ、削除、変更、ビューを追加するためのコンテンツ ' '' インポートpymysql インポートのログ のインポートSYS インポート日時を、時間 #を追加しますログインする #取得ロガーインスタンス ロガー= logging.getLogger( "baseSpider") #は、出力形式を指定する フォーマッタlogging.Formatter =( '%(関数は、asctime)S \ %(levelname)は-8S:%(メッセージ)S') #ログファイル file_handler logging.FileHandler =( "baseSpider.log") file_handler.setFormatter(フォーマッタ) #コンソールログ console_handler = logging.StreamHandler(sys.stdoutの) console_handler.setFormatter(フォーマッタ) #ログ追加特定のプロセッサロガー ロガー。 logger.addHandler(console_handler) logger.setLevel(logging.INFO) クラスDBHelper: #构造函数 デフ__init __(自己、ホスト= '127.0.0.1'、ユーザー= 'ブログ'、 PWD = 'sf123456'、デシベル= 'myblog' ): self.host =ホスト self.user =ユーザー self.pwd = PWD self.db =デシベル self.conn =なし self.cur =なし #连接数据库 デフconnectDatabase(自己): 試してみる: self.conn = pymysql.connect (self.host、self.user、 self.pwd、self.db、文字セット= 'UTF8') を除く: logger.error( "connectDatabaseに失敗しました") リターン偽 self.cur = self.conn。カーソル() はTrueを返します 近い#データベース DEF閉じる(セルフ): #データが開かれている場合、閉じ、そうでない場合は何も操作しない self.connとself.cur場合: self.cur.close() セルフ.conn.close() Trueを返し SQを主に挿入するために使用されるデータベースの#文の実行、。 DEF(セルフ、SQL、のparams =なし)を実行: #データベース接続 self.connectDatabase() :試して self.connと自己のIFを。 CUR: #ロジック正常に実行されたSQL、コミット self.cur.execute(SQL、のparams) self.conn.commitを() 以外: logger.error( "失敗EXECUTE:" + SQL) logger.error( "のparams:" +のparams) self.close() はFalseを返す リターンを真 #用来查询表数据 デフはfetchAll(自己、SQL、のparams =なし): self.execute(SQL、のparams) 戻りself.cur .fetchall() もし__name__ == '__main__': dbhelper = DBHelper( '192.168.0.111')# 操作表 TBL = "blog_content" DT = STR(datetime.datetime.now()のstrftime( "%Y-%M。 - %D%H:%M:%Sを")) SQL = """ \への挿入 %sの(blog__topic、blog_content、blog_time)\ 値( '私の最初のブログ'、 'こんにちは、すべてのボディ、これが私の最初のものですブログ」、 '%s'の) ""」%(TBL、DT) 結果= dbhelper.execute(SQL、なし) 場合結果: logger.info( "テーブル%sの操作成功" %(SQL)) 他の: logger.info(%(SQL) "テーブル%sの操作に失敗しました")
2)データベースの設計
#のコンテンツ一覧をブログ
テーブルblog_content(作成
blog_id INT NOT NULLコメントのブログ番号'、
blog__topic VARCHAR(80)のコメント'ブログのタイトル'、
blog_content TEXT(65535)のコメント'ブログの内容'、
コメントは'公開' blog_time DATETIME、
PRIMARY KEYを( `blog_id`)
)。
ALTER TABLEのblog_content MODIFYは、INT AUTO_INCREMENTをblog_id。
#コメント、外部キー、
テーブルblog_remarkを作成します(
NOT NULLコメントint型上記のid上記「コメント数」、
トピックVARCHAR(100)コメントのブログのタイトル'、
コメントTEXT(65535)のコメント「レビュー」、
cmt_timeのDATETIMEコメント「コメント期間」、
blog_id int型のコメント'コメントがブログに述べたID上記'、
fk_bc_bc CONSTRAINT
FOREIGN KEY(blog_id)
REFERENCESのblog_content(blog_id)
);