FLASKで作成したデータベースアプリがあります。
現在、このモジュールをPORTを変えて起動していますが、
BLUEPRINTを使って、まとめたいと思っています。
アプリケーションは、app.pyで同名であり、
ほとんどコピーして複製化しています。
フォルダの構成は下記です。
C:.
├─master
│ ├─static-database.db
│ ├─templates-index.html
│ ├─upload
│ └─__pycache__
└─ort
├─static-database.db
├─templates-index.html
├─upload
└─__pycache__
個々のモジュールに、グローバルで使っている変数、データベース、フォルダ等が
あり、これらのソースを極力触らないで、BLUEPRINTでまとめることは可能なのでしょうか?
現状では、重複分は名前を変えるなどの修正が必要になりますが
作業で発生するミスを避けたいと思っています。
ソースA
python
1master.views.py 2 3TEMP_FOLDER = './upload/' 4 5app = Flask(__name__) 6app.config['TEMP_FOLDER'] = TEMP_FOLDER 7app.config['DATABASE']='database.db' 8 9@app.route('/', methods=['GET']) 10def main(): 11 conn = sqlite3.connect(app.config['DATABASE']) 12 cur = conn.cursor() 13 cur.execute("SELECT * FROM schedule order by upd DESC") 14 table = cur.fetchall() 15 conn.close() 16 return render_template('/index.html',table) 17
ソースB
python
1ort.views.py 2 3TEMP_FOLDER = './upload/' 4 5app = Flask(__name__) 6app.config['TEMP_FOLDER'] = TEMP_FOLDER 7app.config['DATABASE']='database.db' 8 9@app.route('/', methods=['GET']) 10def main(): 11 conn = sqlite3.connect(app.config['DATABASE']) 12 cur = conn.cursor() 13 cur.execute("SELECT * FROM schedule order by upd DESC") 14 table = cur.fetchall() 15 conn.close() 16 return render_template('/index.html',table) 17 18 19
合体APP
from flask import Flask app = Flask(__name__) app.config['PORT']='8000' from master.views import app1 app.register_blueprint(app1, url_prefix='/master') from ort.views import app2 app.register_blueprint(app2, url_prefix='/ort') if __name__ == "__main__": app.run(app.config['PORT'], host='0.0.0.0')
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。