PythonとIRISグローバルを使用したブログの作成
インターネットを使うようになってから (1990年代後半)、PythonとIRIS グローバルを使ってブログを書いていますが、常にCMS (コンテンツ管理システム) でブログ、ソーシャルメディア、さらには企業ページに情報を簡単に投稿できるようにしていました。
数年後、自分がマークダウンファイルに収めて使ってきたすべてのコードをgithubに入れました。
ネイティブAPIでデータをIntersystems IRISに入れて永続化するのはとても簡単だったので、このアプリケーションを作成して少しSQLを忘れ、キー・バリュー・データベースモデルを受け入れることにしました!
ブログとは?
これはWEB LOGの略名で、基本的にはユーザーが書いてページに投稿、公開できるプラットフォームです。
マークダウンフォーマットとは?
マークダウンとは、フォーマットしたテキストを作成するマークアップ言語であり、HTMLより簡単で、多くのCMSプラットフォームで人気があります。
例:
# Header 1
## Header 2
### Header 3
結果:
Header 1
Header 2
Header 3
IRISで作成するメリットとは?
IRIS Globalsを使用して各投稿のデータを永続化しながら、各データコンサルタントはキー・バリュー・データベースとして動作するIRISのスピードというメリットを得ます。すでに作業でIris Instanceを使用している場合は、このようなアプリケーションを作成するために別の技術を使用する必要はありません。
そしてPythonとは?
Pythonは最も人気の高いプログラミング言語の一つです。チューリング完全言語であり、開発課題のほとんどを楽にしてくれるオープンソースライブラリがたくさんあります。
私は、PythonとIrisを統合するために、IRISNative APIを使用しました。
データベースモデル キー値
私のエンジンは、これでもかというほどシンプルに動作します。
各投稿を永続化するために、サブスクリプトが「post」、その次のサブスクリプトが投稿IDのグローバル「^blog」を作成します。
このグローバルに投稿コンテンツを入れて、終わりです!
これだけで、テーブル、インデックスなどを作成する必要はありません。
^blog("post", "1") = "# post 1 content..."
^blog("post", "2") = "# post 2..."
^blog("post", "3") = "# post 3 markdown content..."
HTMLでマークダウンをレンダリングするには?
これで、オープンソースモジュール使用可能なPythonのメリットを無限に得るこquoとができます。私の選択は、たった1行のコマンドで簡単にマークダウンをレンダリングできるDashライブラリでした(^_^)
import dash_core_components as dcc
import dash
import irisnative
#creating a connection with an IRIS Instance
conn = irisnative.createConnection("host","port","namespace","username","password") obj_iris = irisnative.createIris(conn)
#getting the content of one post with id 1
content = obj_iris.get("blog", "post", "1")
#creating the dash application
app = dash.Dash(__name__)
#rendering a markdown value
rendered_markdown_in_html = dcc.Markdown(content)
#showing on the page the rendender markdown
app.layout = html.Div([rendered_markdown_in_html])
すべての投稿を表示するには?
サブスクリプト「^blog("post",)」繰り返して、上記と同じ方法でレンダリングされたマークダウンをページにプリントできます。
データベースをモデル化し、これよりも速く簡単に動作するフォームを作ったことがありますか?回答はコメント欄に書いてください!
自分でビルドしたくないけど、動作する様子は見たい!
簡単です!ここをクリックして、御覧ください。
http://iris-multimodel-suite.eastus.cloudapp.azure.com/blog-post
(サイトは既に閉鎖されています。ご了承ください)
この記事とアプリケーションをお楽しみいただけましたか?
ここではマルチモデルコンテストでの私のアプリケーションの一部をご説明しています。よろしければ、私のアプリに投票してください。