Jak trzymać otwarte połaczenie do bazy mysql, przy każdym następnym requescie?
Wystarczy nie zamykać połączenia to ciągle będzie otware (pokaż jak się łączysz)
Ogólnie do flaska polecam sqlalchemy :P
Łącze się tak: Dao('mysql+pymysql://{}:{}@{}/{}'.format(settings.DB_USER, settings.DB_PASS, settings.DB_HOST, settings.DB_NAME)
A kiedy zamykasz połączenie :?
Chyba go nie zamykam, albo się samo zamyka, ale przy kazdym nowym requescie musze to wywolac jeszcze raz wiec otwiera sie nowe połączenie?
Nie no skoro nie zamykasz i o ile ten kod nie jest przy polaczeniu z jakims requestem to wtedy caly czas jesteś połączony z bazą danych :P. Więc spokojnie okazuje się że nic nie musisz zrobić (no może poza zamknieciem polaczenia przy zamykaniu programu:D).
Ale na wszelki wypadek pokaz kiedy robisz jakies query do mysqla (a najlepiej caly kod w ktorym jest cokolwiek zwiazanego z bazami danych)
session = Initialize(conn).create_session() customer = Customer(email=email) CustomerService(session).save(customer) session.close()
To jest wykonywane przy odpowiednim requescie. Jak sprawdzić czy jest połączenie z bazą?
Przy następnym requescie jak wykon się znowu 'Dao('mysql+pymysql://{}:{}@{}/{}'.format(settings.DB_USER, settings.DB_PASS, settings.DB_HOST, settings.DB_NAME)' to jest nowy połączenie czy nadal stare?
Proponuje zrobić tak:
import pymysql
conn = pymysql.connect(host='localhost',
user='username',
passwd='password',
db='database',
charset='utf8')
cursor = conn.cursor()
app = Flask(__name__)
#przykladowy kod
@app.route("/login")
def login():
cursor.execute("QUERY")
#opcjonalnie cursor.commit()
No i tam wtedy lecisz masz jedno polaczenie caly czas ale ogólnie z czasm proponuje zainteresowac sie MVC i trzymania wszystkiego co dotyczy bazy danych w innym pliku i korzystac tylko z tego w appce.
A no i oczywiscie ten kod nie bedzie sobie radzil z errorami, nie bedzie zamykal polaczenia itd. tam juz musisz zrobic to po swojemu :P
Dzięki, właśnie to nie chciało mi przyjść do głowy :)
Spoko nie ma sprawy :D