2016-07-12 3 views
-1

Я только начал использовать Колбу учебник:404 ошибка в Колба учебнике

from flask import Flask 
app = Flask(__name__) 


@app.route('/user/<username>') 
def show_user_profile(username): 
    return 'User %s' % (username) 

и я получаю следующее сообщение об ошибке:

The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. 

Я задавался вопросом, что здесь не так, учебник не скажите что-нибудь прямо об этой ошибке.

+0

Какой URL-адрес вы используете? Очевидно, что это должно соответствовать маршруту, определенному в вашем приложении. –

+0

ну, честно говоря, у меня больше нет подсказки, кроме этого, я запускал это в интерпретаторе python: $ export FLASK_APP = hello.py $ flask run * Запуск на http://127.0.0.1:5000/ – bhjghjh

+0

Ok , Я предполагаю, что вы просматриваете 127.0.0.1:5000 в браузере. Это вызывает маршрут «/», который не определен в вашем приложении. Вы только определили «/ user/» –

ответ

0

Необходимо активировать свою виртуальную среду.

source venv/bin/activate 

ОБНОВЛЕНО
Попробуйте это на питона оболочки:

>>> from flask import Flask, url_for 
>>> app = Flask(__name__) 
>>> @app.route('/') 
... def index(): pass 
... 
>>> @app.route('/user/<username>') 
... def profile(username): pass 
... 
>>> with app.test_request_context(): 
... print url_for('index') 
... print url_for('profile', username='John Doe') 
... 
/
/user/John%20Doe 

Ваш URL отсутствует аргумент <username>.

+0

Я живу в виртуальной среде. Мой код работает нормально, пока я не назову @ app.route ('/'), ошибка сервера возникает, когда я вызываю @ app.route ('/ something_else') – bhjghjh

+0

@bhjghjh добавляет еще один код на вопрос с ваших маршрутов плюс, который URL-адрес, который приводит к ошибке? – roy

0

Как отметил @MattHealy, у вас есть только один маршрут, /user/<username>. <username> является частью «динамического URL». Это объясняется прямо в учебнике: http://flask.pocoo.org/docs/0.11/quickstart/#variable-rules.

Это означает, что часть URL-адреса передается в вашу функцию просмотра в качестве аргумента. Затем в вашей функции просмотра вы можете использовать любую другую строку в Python. Поэтому вам необходимо отправить запрос на что-то вроде: http://localhost:5000/user/yourusername

+0

Что происходит, когда используется правильный URL-адрес, но нет значения для в URL-адресе. ie: http: // localhost: 5000/user/yourusername т.е. действительный http: // localhost: 5000/user/ возвращает ошибку 404. Я попытался , если имя пользователя == None: сделать бла еще: сделать нормальный материал будет делать, если имя пользователя было непустое значение также попытался создать дубликат метод без каких-либо аргументов. т.е. Защиту show_user_profile(): возвращение «Имя пользователя требуется» оба этих не удалось – aspiringGuru

+0

оба из них не удалось, так как маршрут выше не распространяется на эту комбинацию @ app.route.. („/ пользователь /“) def hello_user_noname(): do blah. – aspiringGuru

Смежные вопросы