Добрый день, появилась задача разработки сервиса с фронтом на Ангуляре и бэкендом на Питоне. Видел много подобных материалов с использованием фреймворков(Джанго, Фласк).Но для меня Питон нужен только в качестве языка для SQL запросов. Попробовал получить результат, но, к сожалению, не получилось, поскольку необходимо отправить заголовки в ответе, но как это сделать не знаю.
#!/usr/bin/python
# -*- coding: utf-8
import MySQLdb
import json
db = MySQLdb.connect(host="127.0.0.1", user="root", passwd="", db="university", charset='utf8', use_unicode=True)
cursor = db.cursor()
sql = "SELECT * FROM student"
cursor.execute(sql)
data = cursor.fetchall()
json.dumps(data, ensure_ascii = False)
# print(json.dumps(data, ensure_ascii = False))
def after_request(response):
response.headers.add('Access-Control-Allow-Origin', '*')
response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
return response
db.close()
--------------service--------------------
@Injectable()
export class RequestService {
// private headers: Headers = new Headers({'Content-Type': 'application/json'});
constructor(private http:Http) { }
getData(){
return this.http.get("http://localhost/diplom/connect.py")
.map(res=>{return res.json() });
}
}
Помогите собрать файл с подключением к бд и отправкой основных заголовков, чтобы в дальнейшем импортировать его в файлы с другими запросами.
Если Вам просто нужен посредник между клиентом и БД на основе HTTP запросов, то нужно поднять локальный сервер, который будет ловить поступающие запросы, совершать необходимые действия с БД и отправлять ответы в нужном виде. Для этого существует масса фреймворков, из которых самый простой Flask.
Установка из командной строки:
pip install Flask
Пример простого сервера:
from flask import Flask
app = Flask(__name__)
# советую поставить этот флаг,
# тогда будет выводиться дополнительная информация об ошибках
app.debug = True
# перенаправляет запросы по адресу "/" на функцию ниже
@app.route("/")
def hello():
# формируем ответ, HTML, JSON, что угодно
resp = flask.Response("Hello, world!")
# вешаем любые заголовки
resp.headers['Access-Control-Allow-Origin'] = '*'
# отправляем ответ
return resp
Тогда подключение к БД будет в начале кода, а в обработчиках HTTP-запросов будут все Ваши запросы к БД.
Также можно по-разному обрабатывать разные типы запросов (GET
, POST
, etc), использовать URL аргументы и содержимое поступающего запроса. В общем, Flask это простой, но вполне полноценный фреймворк.
Полезные ссылки:
Документация Flask
Дополнительные материалы можно найти и на этом сайте по метке: flask
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, мне нужно получить все поля из таблицы commentsВ таблице comments есть поле answerid
Помогите составить корректный запрос в базу что бы можно было получать каждую запись по id, как single page