@app.route("/data", methods=["GET"]) def get_data(): query = "SELECT title FROM data" with get_connection() as connection: with connection.cursor() as cursor: cursor.execute(query) data = cursor.fetchall() return jsonify({"data": data})
Код на клиенте: from kivy.lang import Builder from kivy.uix.boxlayout import BoxLayout from kivymd.app import MDApp from kivymd.uix.button import MDRaisedButton from kivymd.uix.list import OneLineListItem import requests
class MainApp(MDApp): def build(self): return Builder.load_string(KV)
def get_data(self): response = requests.get("https://007sunchela.pythonanywhere.com/data") if response.status_code == 200: data = response.json()["data"] self.root.ids.data_list.clear_widgets() for item in data: self.root.ids.data_list.add_widget( OneLineListItem(text=item[0]) ) else: print("Ошибка при получении данных")
Проблема в том, что запрос обрабатывается не очень быстро
Можно ли его как-то ускорить?
Код на сервере:
from flask import Flask, jsonify
import mysql.connector
app = Flask(__name__)
def get_connection():
return mysql.connector.connect(
host="007sunchela.mysql.pythonanywhere-services.com",
user="007sunchela",
password="03zurami",
database="007sunchela$testing"
)
@app.route("/data", methods=["GET"])
def get_data():
query = "SELECT title FROM data"
with get_connection() as connection:
with connection.cursor() as cursor:
cursor.execute(query)
data = cursor.fetchall()
return jsonify({"data": data})
Код на клиенте:
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivymd.app import MDApp
from kivymd.uix.button import MDRaisedButton
from kivymd.uix.list import OneLineListItem
import requests
KV = '''
BoxLayout:
orientation: 'vertical'
ScrollView:
MDList:
id: data_list
MDRaisedButton:
text: "Получить данные"
size_hint_y: None
height: "48dp"
on_release: app.get_data()
'''
class MainApp(MDApp):
def build(self):
return Builder.load_string(KV)
def get_data(self):
response = requests.get("https://007sunchela.pythonanywhere.com/data")
if response.status_code == 200:
data = response.json()["data"]
self.root.ids.data_list.clear_widgets()
for item in data:
self.root.ids.data_list.add_widget(
OneLineListItem(text=item[0])
)
else:
print("Ошибка при получении данных")
MainApp().run()