Skip to content

Commit ad1b344

Browse files
24.10.2024 changement de base de donnee - sqlite a mysql
1 parent 230c7f1 commit ad1b344

5 files changed

Lines changed: 47 additions & 15 deletions

File tree

create_db.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import os
2+
from dotenv import load_dotenv
3+
load_dotenv()
4+
5+
import pymysql
6+
7+
connection = pymysql.connect(host='localhost',
8+
user='root',
9+
password=os.environ.get('db_password'))
10+
11+
with connection:
12+
'''with connection.cursor() as cursor:
13+
# Create a new record
14+
sql = "CREATE DATABASE site_mysql"
15+
cursor.execute(sql)
16+
connection.commit()'''
17+
18+
# connection is not autocommit by default. So you must commit to save
19+
# your changes.
20+
with connection.cursor() as cursor:
21+
cursor.execute('SHOW DATABASES')
22+
for db in cursor:
23+
print(db)

db_setter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
with app.app_context():
55
db.drop_all()
66
db.create_all()
7-
7+
'''
88
# users
99
user = User(name='romain', lastname='Maurer', password='12345', username='romain.maurer', phone='0774428642', datenaiss=datetime(year=2007,month=7, day=28), creation_date=datetime(year=2023,month=9, day=21), admin=True)
1010
moi = User(name='moi', lastname='je', password='moije', username='moi.je', datenaiss=datetime(year=2007,month=7, day=28))
@@ -66,4 +66,4 @@
6666
start = Stand(name='debut', parcours_id=b.id, lat=46.54542398593088, lng=6.447682455182076, chrono=1, start_stand=b.id, elevation=534)
6767
db.session.add_all([start])
6868
69-
db.session.commit()
69+
db.session.commit()'''

flask_app/__init__.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@
77
from icecream import install
88
from flask_babel import Babel, lazy_gettext, gettext, _
99
from flask_socketio import SocketIO
10+
from sqlalchemy import URL
1011
import os
12+
from dotenv import load_dotenv
1113
install()
12-
14+
load_dotenv()
15+
from sqlalchemy import make_url
1316
# met la langue en francais pour le formatage des dates
1417
import locale
1518
locale.setlocale(locale.LC_TIME,'')
@@ -22,14 +25,21 @@
2225

2326
app = Flask(__name__)
2427
app.config['SERVER_NAME'] = 'localhost:5000'
25-
app.config['SECRET_KEY'] = 'secret_key' #! change that for deployment
26-
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///site.db"
28+
password= os.environ.get('db_password')
29+
app.config['SECRET_KEY'] = password #! change that for deployment
30+
url_object = URL.create(
31+
"mysql+pymysql",
32+
username="root",
33+
password=password, # plain (unescaped) text
34+
host="localhost",
35+
database="site",
36+
)
37+
app.config["SQLALCHEMY_DATABASE_URI"] = url_object
2738
app.config['BABEL_TRANSLATION_DIRECTORIES'] = f'{app.root_path}/translations'
2839
app.jinja_env.add_extension('jinja2.ext.loopcontrols')
2940
app.url_map.default_subdomain = ''
3041

31-
db = SQLAlchemy()
32-
db.init_app(app)
42+
db = SQLAlchemy(app)
3343

3444
migrate = Migrate(app, db)
3545

flask_app/models.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class User(UserMixin, db.Model):
2727
id = db.Column(db.Integer, primary_key=True)
2828
creation_date = db.Column(db.DateTime, nullable=False, default=datetime.now)
2929
avatar = db.Column(db.String(80), nullable=False, default=DEFAULT_PROFIL_PIC)
30-
name= db.Column(db.String(20), nullable=False)
30+
name= db.Column(db.String(40), nullable=False)
3131
lastname = db.Column(db.String(20), nullable=False)
3232
password = db.Column(db.String(80), nullable=False)
3333
username = db.Column(db.String(20), nullable=False, unique=True)
@@ -46,7 +46,7 @@ class Event(db.Model):
4646
__allow_unmapped__ = True
4747
id = db.Column(db.Integer, primary_key=True)
4848
creation_date=db.Column(db.DateTime, nullable=False, default=datetime.now)
49-
name= db.Column(db.String(20), nullable=False, unique=True)
49+
name= db.Column(db.String(40), nullable=False, unique=True)
5050
parcours=db.relationship('Parcours', backref='event', lazy='dynamic')
5151
editions=db.relationship('Edition', backref='event', lazy='dynamic')
5252
inscrits=db.relationship('Inscription', backref='event', lazy='dynamic')
@@ -70,7 +70,7 @@ class Parcours(db.Model):
7070
traces = db.relationship('Trace', backref='parcours', foreign_keys='Trace.parcours_id', lazy ='dynamic')
7171
start_stand = db.relationship('Stand', foreign_keys='Stand.start_stand', uselist=False)
7272
end_stand = db.relationship('Stand', foreign_keys='Stand.end_stand', uselist=False)
73-
name= db.Column(db.String(20), nullable=False)
73+
name= db.Column(db.String(40), nullable=False)
7474
event_id=db.Column(db.Integer, db.ForeignKey('event.id'), nullable=False)
7575
editions = db.relationship('Edition', secondary=editions_parcours, back_populates='parcours', lazy ='dynamic')
7676
inscriptions=db.relationship('Inscription', backref='parcours', lazy='dynamic')
@@ -120,7 +120,7 @@ def get_chrono_dists(self)->list[float]:
120120
class Stand(db.Model):
121121
__allow_unmapped__ = True
122122
id = db.Column(db.Integer, primary_key=True)
123-
name= db.Column(db.String(20), nullable=False)
123+
name= db.Column(db.String(40), nullable=False)
124124
lat = db.Column( db.Float, nullable=False)
125125
lng = db.Column( db.Float, nullable=False)
126126
elevation = db.Column( db.Float)
@@ -145,7 +145,7 @@ def __repr__(self):
145145
class Trace(db.Model):
146146
__allow_unmapped__ = True
147147
id = db.Column(db.Integer, primary_key=True)
148-
name= db.Column(db.String(20), nullable=False)
148+
name= db.Column(db.String(40), nullable=False)
149149
parcours_id = db.Column(db.Integer, db.ForeignKey('parcours.id'))
150150
start_id=db.Column(db.Integer, db.ForeignKey('stand.id'), nullable=False)
151151
end_id=db.Column(db.Integer, db.ForeignKey('stand.id'), nullable=False)
@@ -197,7 +197,7 @@ class Edition(db.Model):
197197
__allow_unmapped__ = True
198198
id = db.Column(db.Integer, primary_key=True)
199199
creation_date=db.Column(db.DateTime, nullable=False, default=datetime.now)
200-
name= db.Column(db.String(20), nullable=False)
200+
name= db.Column(db.String(40), nullable=False)
201201
event_id=db.Column(db.Integer, db.ForeignKey('event.id'), nullable=False)
202202
parcours = db.relationship('Parcours', secondary=editions_parcours, back_populates='editions', lazy ='dynamic')
203203
inscriptions=db.relationship('Inscription', backref='edition', lazy='dynamic')
@@ -265,7 +265,7 @@ class PassageKey(db.Model):
265265
stands=db.relationship('Stand', secondary=passagekey_stand, back_populates='passage_keys', lazy='dynamic')
266266
passages=db.relationship('Passage', backref='key', lazy='dynamic')
267267
key=db.Column(db.String(20), nullable=False, unique=True)
268-
name=db.Column(db.String(20), nullable=False)
268+
name=db.Column(db.String(40), nullable=False)
269269

270270
def __repr__(self) -> str:
271271
return f'<PassageKey edition:{self.edition.name} stands={', '.join([str(stand) for stand in self.stands.all()])}'

flask_app/users/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ def login():
1616
if current_user.is_authenticated:
1717
return redirect(url_for('home'))
1818
form = Login_form()
19-
ic(form.password.data)
2019
if form.validate_on_submit():
2120
user= User.query.filter_by(username=form.username.data).first()
2221
if user and form.password.data == user.password:

0 commit comments

Comments
 (0)