Почему я получаю сообщение об ошибке «404 Not Found» при маршрутизации на определенные страницы в Bottle? - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь создать простой торговый сайт, но для некоторых маршрутов я получаю 404 Not Found . Я довольно новичок в Bottle Framework и не могу понять проблему. Любая помощь с благодарностью.

Вот код:

import random
from bottle import Bottle,route,template, static_file, request, redirect, abort, view
import model
import session



app = Bottle()


@app.route('/')
def index(db):

    info = {
        'title': "Our Products"
    }

    all_products = model.product_list(db)
    return template('index', info, products=all_products)


@app.route('/product/<id>', method='GET')
def product(db, id):

    product = model.product_get(db, id)
    return template('product.html', product=product)

@app.route('/views/men', method='GET')
def product(db):

    products = model.product_list(db, 'Men')
    return template('views/men.html', products=products)

@app.route('/', method='POST')
def cart(db):

    id = request.query.id
    quantity = request.forms.get('quantity')
    product = model.product_get(db, id);
    session.add_to_cart(db, id, quantity);

    cart = session.get_cart_contents()
    return template('cart.html', cart=cart)

@app.route('/cart')
def show_cart():
    cart = session.get_cart_contents()
    return template('cart.html', cart=cart)

@app.route('/static/<filename:path>')
def static(filename):
    return static_file(filename=filename, root='static')


if __name__ == '__main__':

    from bottle import run
    from bottle.ext import sqlite, beaker
    from dbschema import DATABASE_NAME
    # install the database plugin
    app.install(sqlite.Plugin(dbfile=DATABASE_NAME))

    # install beaker
    session_opts = {
        'session.type': 'memory',
    }
    beaker_app = beaker.middleware.SessionMiddleware(app, session_opts)
    run(app=beaker_app, debug=True, port=8010)

Домашняя страница работает нормально. Он загружается, и я вижу все продукты. Когда я нажимаю на товар, он выводит меня на 'http://127.0.0.1:8010/product/1', и все работает отлично. В этот момент я нажимаю на кнопку «Добавить в корзину», и она попадает в корзину. Но когда я меняю маршрут на «/ cart», я получаю 404 Not Found, когда я устанавливаю его на «/», он работает нормально. Когда я направляюсь в «views / men», я получаю 404 Not Found. Я не понимаю, что происходит.

...