django でいくつかの初級的なプログラムは作成したのですが、もう少し上に行こうとすると全く進みません。
例えば、ログインしてチャットするというようなものは未だに作ることができません。
dcm4chee を久しぶりに触ってみて、ローカルの flask から ubuntu server 上のデータベースを読み込んで操作できないかと思いました。
flask のインストール
pip install Flask
とても簡単。
mysql を使うためには PyMySQL もインストールする必要があります。
pip install PyMySQL
作業用フォルダ作成と各ファイル配置
mkdir ~/flask
cd flask
hello.py
from flask import Flask, render_template
import pymysql
app = Flask(__name__)
@app.route('/')
def hello():
db = pymysql.connect(
host='localhost',
user='root',
password='pass',
db='lapis',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor,
)
cur = db.cursor()
sql = "select * from kensa limit 30"
cur.execute(sql)
members = cur.fetchall()
cur.close()
db.close()
return render_template('hello.html', title='flask test', members=members)
if __name__ == "__main__":
app.run(debug=True)
templates/layout.html
<!doctype html>
<html>
<head>
<title>{{ title }}</title>
<link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='css/mystyle.css') }}">
</head>
<body>
<div id="container">
<div id="main">
{% block content %}
<!-- ここにメインコンテンツを書く -->
{% endblock %}
</div>
</div>
</body>
</html>
templates/hello.html
{% extends "layout.html" %}
{% block content %}
<h1>一覧</h1>
<table class="datashow">
<tr><th>日付</th><th>カルテ番号</th></tr>
{% for member in members %}
<tr><td>{{ member.hizuke}}</td><td>{{ member.karteNo }}</td></tr>
{% endfor %}
</table>
{% endblock %}
全体的な構造は以下のような感じで。
js はまだ使いませんが、一応配置しておきます。
.
├── hello.py
├── static
│ ├── css
│ │ └── mystyle.css
│ └── js
│ └── jquery-3.2.1.min.js
└── templates
├── hello.html
└── layout.html
flask の起動は、
python hello.py
http://localhost:5000/ にアクセスすると、

これはすごい。