Pythonの学習の1-ブログ-DBアクションクラス

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)
);

おすすめ

転載: www.cnblogs.com/cwind/p/12169355.html
おすすめ