Add route list db and load db by name file
This commit is contained in:
@@ -2,20 +2,23 @@ import os
|
|||||||
import sqlite3
|
import sqlite3
|
||||||
from flask import Flask, request, session, g, redirect, url_for, abort, \
|
from flask import Flask, request, session, g, redirect, url_for, abort, \
|
||||||
render_template, flash
|
render_template, flash
|
||||||
import logging
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.config.from_object(__name__)
|
app.config.from_object(__name__)
|
||||||
|
nameDB='cards.db'
|
||||||
|
pathDB='db'
|
||||||
|
|
||||||
# Load default config and override config from an environment variable
|
def load_config():
|
||||||
app.config.update(dict(
|
app.config.update(dict(
|
||||||
DATABASE=os.path.join(app.root_path, 'db', 'cards.db'),
|
DATABASE=os.path.join(app.root_path, pathDB, nameDB),
|
||||||
SECRET_KEY='development key',
|
SECRET_KEY='development key',
|
||||||
USERNAME='admin',
|
USERNAME='admin',
|
||||||
PASSWORD='default'
|
PASSWORD='default'
|
||||||
))
|
))
|
||||||
app.config.from_envvar('CARDS_SETTINGS', silent=True)
|
app.config.from_envvar('CARDS_SETTINGS', silent=True)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
load_config()
|
||||||
|
|
||||||
def connect_db():
|
def connect_db():
|
||||||
rv = sqlite3.connect(app.config['DATABASE'])
|
rv = sqlite3.connect(app.config['DATABASE'])
|
||||||
@@ -59,7 +62,7 @@ def initdb():
|
|||||||
@app.route('/')
|
@app.route('/')
|
||||||
def index():
|
def index():
|
||||||
if session.get('logged_in'):
|
if session.get('logged_in'):
|
||||||
return redirect(url_for('memorize', card_type="1"))
|
return redirect(url_for('list_db'))
|
||||||
else:
|
else:
|
||||||
return redirect(url_for('login'))
|
return redirect(url_for('login'))
|
||||||
|
|
||||||
@@ -258,7 +261,7 @@ def login():
|
|||||||
else:
|
else:
|
||||||
session['logged_in'] = True
|
session['logged_in'] = True
|
||||||
session.permanent = True # stay logged in
|
session.permanent = True # stay logged in
|
||||||
return redirect(url_for('cards'))
|
return redirect(url_for('index'))
|
||||||
return render_template('login.html', error=error)
|
return render_template('login.html', error=error)
|
||||||
|
|
||||||
|
|
||||||
@@ -374,5 +377,23 @@ def bookmark(card_type, card_id):
|
|||||||
flash('Card saved.')
|
flash('Card saved.')
|
||||||
return redirect(url_for('memorize', card_type=card_type))
|
return redirect(url_for('memorize', card_type=card_type))
|
||||||
|
|
||||||
|
@app.route('/list_db')
|
||||||
|
def list_db():
|
||||||
|
if not session.get('logged_in'):
|
||||||
|
return redirect(url_for('login'))
|
||||||
|
dbs = [f for f in os.listdir(pathDB) if os.path.isfile(os.path.join(pathDB, f))]
|
||||||
|
dbs = list(filter(lambda k: '.db' in k, dbs))
|
||||||
|
return render_template('list_db.html', dbs=dbs)
|
||||||
|
|
||||||
|
@app.route('/load_db/<name>')
|
||||||
|
def load_db(name):
|
||||||
|
if not session.get('logged_in'):
|
||||||
|
return redirect(url_for('login'))
|
||||||
|
global nameDB
|
||||||
|
nameDB=name
|
||||||
|
load_config()
|
||||||
|
return redirect(url_for('memorize', card_type="1"))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(host='0.0.0.0')
|
app.run(host='0.0.0.0')
|
||||||
|
|||||||
Reference in New Issue
Block a user