Реализуем веб интерфейс на Flask и Python для доступа к базе sqlite
Здравствуйте! Создание веб-интерфейса для работы с SQL в Python с использованием Flask - это отличный способ предоставить пользователям доступ к базе данных через веб-браузер. Итак, начнем:
1. Установка Flask
Первым шагом является установка Flask:
pip install Flask
2. Настройка проекта
Создайте каталог для вашего проекта и создайте в нем файлы. Назовем наш проект sql_flask_app.
3. Написание кода
app.py
from flask import Flask, render_template, request
import sqlite3
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/query', methods=['POST'])
def query():
query_text = request.form['query']
conn = sqlite3.connect('example.db')
cur = conn.cursor()
cur.execute(query_text)
rows = cur.fetchall()
conn.close()
return render_template('result.html', rows=rows)
if __name__ == '__main__':
app.run(debug=True)
templates/index.html
<!DOCTYPE html>
<html>
<head>
<title>SQL Flask App</title>
</head>
<body>
<h1>SQL Flask App</h1>
<form action="/query" method="post">
<textarea name="query" rows="4" cols="50"></textarea><br>
<input type="submit" value="Run Query">
</form>
</body>
</html>
templates/result.html
<!DOCTYPE html>
<html>
<head>
<title>Query Result</title>
</head>
<body>
<h1>Query Result</h1>
<table border="1">
<thead>
<tr>
{% for column_name in rows[0].keys() %}
<th>{{ column_name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for row in rows %}
<tr>
{% for value in row %}
<td>{{ value }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
4. Запуск приложения
Запустите приложение, выполнив в командной строке:
python app.py
Заключение
Теперь у вас есть простое веб-приложение на Flask, которое позволяет пользователям отправлять SQL-запросы к базе данных. Обратите внимание, что этот код не обрабатывает ошибки ввода пользователей и не реализует безопасность ввода данных, поэтому в реальном проекте вам следует уделить этому внимание.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.