Я пытаюсь создать панель управления администратора, которая объединяет 4 различных сайта электронной коммерции.Все сайты имеют одинаковую структуру базы данных (все MySQL).
Что происходит не так?
Я получаю 404 Not Found для любого идентификатора заказа и сайта, который я вставляю. Независимо от того, как я их смешиваю, яне может получить какую-либо запись, чтобы придумать.Всегда 404, и я понятия не имею, почему.И вот я здесь.
Код
Я попытался сделать это, создав базовые классы моделей для каждой таблицы.Затем создание унаследованных предложений тех базовых классов с другим ключом привязки, зависящим от БД, для которой он предназначен.Это краткое представление кода - если вам нужно больше, чем это, дайте мне знать:
basemodels.py
MyOrderClass(db.Model):
__tablename__ = 'messytablename'
id = db.Column('order_id', db.Integer, primary_key=True)
order_total = db.Column(db.Float)
order_status = db.Column(db.String(1))
site2models.py
class Site2Order(MyOrderClass):
__bind_key__ = 'site2'
__ init __. py
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:pass@localhost/site'
app.config['SQLALCHEMY_BINDS'] = {
'site1':'mysql://user:pass@localhost/site1',
'site2':'mysql://user:pass@localhost/site2',
'site3':'mysql://user:pass@localhost/site3',
'site4':'mysql://user:pass@localhost/site4'
}
views.py
@app.route('/order/<site>/<orderid>')
def show_order(site, orderid):
if site == 'site1':
orderObject = Site1Order
if site == 'site2':
orderObject = Site2Order
if site == 'site3':
orderObject = Site3Order
if site == 'site4':
orderObject = Site4Order
order = orderObject.query.get(orderid)
return render_template('order.html', order=order)
Оригинальные сайты построены на PHP и имеют менее аккуратные структуры и соглашения об именах.
Спасибо, что уделили время.