プログラミング

FlaskとSQLiteでMarkdown表示

PythonのFlaskフレームワークとSQLiteデータベースを使用して、Markdown形式でデータを処理する完全かつ包括的な記事を以下に紹介します。このガイドでは、Flaskアプリケーションの作成からSQLiteデータベースのセットアップ、Markdownのレンダリングまでをカバーします。


必要なライブラリのインストール

最初に、Flaskフレームワーク、SQLite、Markdownのレンダリングを行うためのライブラリをインストールします。必要なパッケージは以下の通りです。

bash
pip install Flask markdown sqlite3

プロジェクトのセットアップ

次に、Flaskアプリケーションを作成するための基本的なファイル構成を作成します。

bash
/myapp /templates index.html app.py database.db
  • app.py:Flaskアプリケーションのメインロジックを格納するファイルです。
  • templates/index.html:HTMLテンプレートファイルです。Flaskはこのファイルを使ってビューをレンダリングします。
  • database.db:SQLiteデータベースファイルです。

Flaskアプリケーションの作成

Flaskアプリケーションを作成し、SQLiteデータベースとMarkdownを使用して動的にコンテンツを生成する方法を見ていきます。

app.pyの作成

まず、Flaskアプリケーションを作成します。以下のコードをapp.pyに記述します。

python
from flask import Flask, render_template import sqlite3 import markdown app = Flask(__name__) # SQLiteデータベースに接続 def get_db_connection(): conn = sqlite3.connect('database.db') conn.row_factory = sqlite3.Row return conn # データベースからMarkdownコンテンツを取得 def get_markdown_content(): conn = get_db_connection() content = conn.execute('SELECT content FROM markdown_data WHERE id = 1').fetchone() conn.close() if content: return content['content'] return None # ルートエンドポイント @app.route('/') def index(): markdown_content = get_markdown_content() if markdown_content: # MarkdownをHTMLに変換 html_content = markdown.markdown(markdown_content) else: html_content = "

No content found in the database.

"
return render_template('index.html', content=html_content) if __name__ == '__main__': app.run(debug=True)

このコードでは、Flaskアプリケーションを作成し、SQLiteデータベースに接続して、データベース内からMarkdown形式のコンテンツを取得し、それをHTMLに変換して表示する処理を行っています。

index.htmlの作成

次に、Flaskテンプレートファイルindex.htmlを作成します。これにより、MarkdownコンテンツがHTMLとしてレンダリングされます。

html
html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Markdown Rendering Exampletitle> head> <body> <h1>Markdown Contenth1> <div> {{ content|safe }} div> body> html>

このテンプレートは、app.pyで生成されたHTMLコンテンツを表示します。{{ content|safe }}は、FlaskがMarkdownから変換したHTMLを安全に埋め込むために使用されます。

SQLiteデータベースのセットアップ

次に、SQLiteデータベースにMarkdownコンテンツを保存します。database.dbファイルを作成し、以下の手順でデータを挿入します。

  1. SQLiteシェルを開きます。
bash
sqlite3 database.db
  1. テーブルを作成します。
sql
CREATE TABLE markdown_data ( id INTEGER PRIMARY KEY, content TEXT NOT NULL );
  1. データを挿入します。
sql
INSERT INTO markdown_data (content) VALUES ('# 見出し\nこれはMarkdownコンテンツです。');

このSQL文を使用して、markdown_dataテーブルにMarkdownコンテンツを挿入します。コンテンツには# 見出しといったMarkdown記法が含まれています。

Flaskアプリケーションの実行

すべてのセットアップが完了したら、Flaskアプリケーションを実行します。

bash
python app.py

これで、ブラウザを開いてhttp://127.0.0.1:5000/にアクセスすることで、SQLiteデータベースから取得したMarkdownコンテンツがHTMLとしてレンダリングされているのを確認できます。

まとめ

この記事では、Flaskを使ってSQLiteデータベースからMarkdown形式のコンテンツを取得し、HTMLに変換して表示する方法を紹介しました。以下の手順で構成されています。

  1. 必要なライブラリのインストール
  2. Flaskアプリケーションの作成
  3. SQLiteデータベースの設定とコンテンツ挿入
  4. Markdownのレンダリングと表示

このアプローチを使うことで、FlaskとSQLiteを組み合わせて動的にコンテンツを管理し、MarkdownをHTMLに変換して表示するシンプルで強力なウェブアプリケーションを構築できます。

Back to top button