Flask otwarcie połączenia do bazy przy starcie flask'a

0

Jak trzymać otwarte połaczenie do bazy mysql, przy każdym następnym requescie?

0

Wystarczy nie zamykać połączenia to ciągle będzie otware (pokaż jak się łączysz)
Ogólnie do flaska polecam sqlalchemy :P

0

Łącze się tak: Dao('mysql+pymysql://{}:{}@{}/{}'.format(settings.DB_USER, settings.DB_PASS, settings.DB_HOST, settings.DB_NAME)

0

A kiedy zamykasz połączenie :?

0

Chyba go nie zamykam, albo się samo zamyka, ale przy kazdym nowym requescie musze to wywolac jeszcze raz wiec otwiera sie nowe połączenie?

0

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)

0

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?

0

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

0

Dzięki, właśnie to nie chciało mi przyjść do głowy :)

0

Spoko nie ma sprawy :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1