SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Pythonで学ぶバックエンド開発

【PythonとSQLiteで学ぶ「データの書き込み方法」】Web掲示板にコメント機能を実装しよう!

Pythonで学ぶバックエンド開発 第7回

コメントページに記事で描かれた絵を用意する

 次に、テンプレートにデータベースから読み込んだ記事と絵を表示します。読み込む記事は、ホームページからのリンクによって「GET」送信されたarticle_idパラメータで決まります。ここで注意して欲しいのが、「data」変数は「データ」、「date」変数は「日時」です。print文で出力した内容は、HTML文書としてWebブラウザに送られます。

記事の絵を表示したコメントページ
記事の絵を表示したコメントページ
サンプルコード「pages」→「comment.py」ファイル
import pages.etc as etc

def html(form,con,cur):
  article_id = int(form.getfirst('article_id', '0'))

  speaker = ''
  sentence = ''
  title = ''
  xy = ''
  data = (article_id,)
  sql = 'SELECT title,speaker,date,sentence,xy FROM article WHERE id = ?'
  for row in cur.execute(sql,data):
    if row[0] != None:
      title = etc.get_html(row[0])
    if row[1] != None:
      speaker = etc.get_html(row[1])
    if row[2] != None:
      date = row[2]
    if row[3] != None:
      sentence = etc.get_html(row[3])
    if row[4] != None:
      xy = row[4]

  print('''
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>{} - 一筆書きBBS</title>
  <link href="css/pc.css" rel="stylesheet" type="text/css" />
  <link href="css/mobile.css" rel="stylesheet" type="text/css" media="only screen and (max-width:1023px)" />
  <script type="text/javascript" src="js/main.js"></script>
</head>
<body>

<script>loadPos("{}");</script>

<div id="left">
  <header>
    <h1>{}</h1>
    <nav>
      <a href="?page=home">HOME</a>
      <a href="?page=draw">DRAW</a>
      <a href="?page=about">ABOUT</a>
    </nav>
  </header>
  <ul>
    <li>{}<br />{}<br />{}</li>
  </ul>
  <h2>コメント</h2>
'''.format(title,xy,title,speaker,date,sentence))

【サンプルコードの解説】

 「html」関数で、URLのarticle_idパラメータを「article_id」変数に取得します。

 SQL文で「article」テーブルのidカラムがariticle_id変数の値の「title」カラムをrow[0]から、「speaker」カラムをrow[1]から、「date」カラムをrow[2]から、「sentence」カラムをrow[3]から、「xy」カラムをrow[4]から取得します。

 「<script>loadPos("{}");</script>」にxy変数を渡してベジェ曲線の絵を描画し、記事をHTMLのリストタグに出力します。

コラム「jsファイルの更新方法」

 外部jsファイルは、Webブラウザの更新ボタンを押しただけでは(キャッシュが原因で)最新版が読み込まれないことがあります。その場合はキャッシュをクリアする必要があります。 また、閲覧者がキャッシュをクリアしなくても最新版を読み込むようにするには、<script>タグのsrc属性で「js/main.js?ver=0.1」のようにバージョン番号(クエリパラメータ)を付与し、更新時にこのバージョンを書き換える方法が有効です。

次のページ
コメントページでコメントを表示する

この記事は参考になりましたか?

Pythonで学ぶバックエンド開発連載記事一覧

もっと読む

この記事の著者

大西 武(オオニシ タケシ)

 1975年香川県生まれ。大阪大学経済学部経営学科中退。プログラミング入門書などを30冊以上商業出版する作家。ドコモでグランプリなどコンテストに20回以上入賞するアーティスト。オリジナルの間違い探し「3Dクイズ」がTVで約10回出題。プロフィールサイト:https://profile.vixar.jp

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/22090 2025/11/20 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング