예제 #1
0
def index():
    if request.method == 'GET':
        if 'Authenticated' in session.keys(
        ) and session['Authenticated'] == True:
            if request.args.get('sql'):
                sql = request.args.get('sql')
                sql = urllib.unquote(sql)
                x = DataTable(db_uri)
                x.makeTable(sql, css_id="first_test_table", width=8)
                return render_template('base.html', table1=x, sql=sql)
            else:
                x = DataTable(db_uri)
                sql = "SELECT customer_id, first_name FROM customer LIMIT 5;"
                x.makeTable(sql, css_id="first_test_table", width=8)
                return render_template('base.html', table1=x, sql=sql)
        else:
            return render_template('login.html')
    if request.method == 'POST':
        passphrase = request.form.get('passphrase')
        if passphrase == 'lockpick':
            session['Authenticated'] = True
            session.permanent = True
            return redirect(url_for('index'))
        else:
            return render_template('login.html', error=True)
예제 #2
0
def download_csv():
    if request.args.get('sql'):
        sql = request.args.get('sql')
        sql = urllib.unquote(sql)
        x = DataTable(db_uri)
        results = x.makeTable(sql)
        headers = x.columns
        f = open('auto_increment.txt', 'r')
        auto_increment = int(f.read()) + 1
        print(auto_increment)
        f.close()
        f = open('auto_increment.txt', 'w')
        f.write(str(auto_increment))
        f.close()
        fn = 'static/output_{}.csv'.format(auto_increment)
        with open(fn, 'w') as f:
            writer = csv.writer(f)
            writer.writerow(headers)
            for i, row in enumerate(results):
                writer.writerow(row)
        return send_file(fn,
                         mimetype='text/csv',
                         attachment_filename='output.csv',
                         as_attachment=True)