Код: Выделить всё
Website1
|- app.py
|- models.py
|- form.py
|- templates
Код: Выделить всё
import os
from flask import Flask , render_template , url_for , redirect
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from dotenv import load_dotenv
from models import Person
from form import AddForm , DelForm
load_dotenv()
app = Flask(__name__)
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY')
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///'+os.path.join(basedir,'data.sqlite')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
Migrate(app,db)
@app.route('/')
@app.route('/index')
def index():
return render_template('index.html')
@app.route('/add_person' , methods=['GET' , 'POST'])
def add_person():
# from models import Person
form = AddForm()
if form.validate_on_submit():
name = form.name.data
age = form.age.data
p1 = Person(name , age)
db.session.add(p1)
db.session.commit()
return redirect(url_for('list_guys'))
return render_template('add.html' , form=form)
@app.route('/del_form' , methods=['POST' , 'GET'])
def del_form():
# from models import Person
form = DelForm()
if form.validate_on_submit():
id = form.id.data
m = db.session.get(Person,id)
db.session.delete(m)
db.session.commit()
return redirect(url_for('list_guys'))
return render_template('del.html', form=form)
@app.route('/list_guys')
def list_guys():
# from models import Person
people1 = Person.query.all()
return render_template('list.html', people1=people1 )
if __name__ == '__main__':
app.run(debug=True)
Код: Выделить всё
from app import db
class Person(db.Model):
__tablename__ = 'people'
id = db.Column(db.Integer , primary_key =True)
name = db.Column(db.Text)
age = db.Column(db.Integer)
def __init__(self , name , age):
self.name = name
self.age = age
def __repr__(self):
return f"{self.name} has a age of {self.age}"
Как мне правильно структурировать приложение Flask, чтобы избежать проблем циклического импорта, сохраняя при этом возможность Flask- Мигрировать, чтобы работать корректно? Будем очень признательны за любые рекомендации!
Подробнее здесь: https://stackoverflow.com/questions/790 ... ration-suc