Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 404运行烧瓶时未找到错误_Python_Flask_Flask Sqlalchemy_Flask Wtforms - Fatal编程技术网

Python 404运行烧瓶时未找到错误

Python 404运行烧瓶时未找到错误,python,flask,flask-sqlalchemy,flask-wtforms,Python,Flask,Flask Sqlalchemy,Flask Wtforms,我正在基于以下示例开发一个简单的Flask应用程序: 以下是文件夹结构: flaskapp: app: __init__.py static: css: main.css templates: 404.html base.html forms: macros.html register.html

我正在基于以下示例开发一个简单的Flask应用程序:

以下是文件夹结构:

flaskapp:
   app:
      __init__.py
      static:
          css:
              main.css
      templates:
          404.html
          base.html
          forms:
              macros.html
          register.html
          users:
              login.html
              profile.html
          register.html
      users:
         __init__py
         constants.py
         decorators.py
         forms.py
         models.py
         views.py
app.db
config.py
run.py
shell.py
run.py:

#!flask/bin/python
from app import app
app.run(debug=True)
shell.py: #!/usr/bin/env python 导入操作系统 导入读线 从pprint导入pprint

from flask import *
from app import *

os.environ['PYTHONINSPECT'] = 'True'
views.py:

from flask import Blueprint, request, render_template, flash, g, session, redirect, url_for
from werkzeug import check_password_hash, generate_password_hash

from app import db
from app.users.forms import RegisterForm, LoginForm
from app.users.models import User
from app.users.decorators import requires_login

mod = Blueprint('users', __name__, url_prefix='/users')


@mod.route('/')
@requires_login
def home():
return render_template("users/profile.html", user=g.user)

@mod.before_request
def before_request():
"""
pull user's profile from the database before every request are treated
"""
g.user = None
if 'user_id' in session:
  g.user = User.query.get(session['user_id'])

@mod.route('/login/', methods=['GET', 'POST'])
def login():
  """
  Login form
  """
  form = LoginForm(request.form)
  # make sure data are valid, but doesn't validate password is right
  if form.validate_on_submit():
    user = User.query.filter_by(email=form.email.data).first()
    # we use werzeug to validate user's password
    if user and check_password_hash(user.password, form.password.data):
      # the session can't be modified as it's signed, 
      # it's a safe place to store the user id
      session['user_id'] = user.id
      flash('Welcome %s' % user.name)
      return redirect(url_for('users.home'))
    flash('Wrong email or password', 'error-message')
  return render_template("users/login.html", form=form)

@mod.route('/register/', methods=['GET', 'POST'])
def register():
  """
  Registration Form
 """
 form = RegisterForm(request.form)
  if form.validate_on_submit():
    # create an user instance not yet stored in the database
    user = User(name=form.name.data, email=form.email.data, \
      password=generate_password_hash(form.password.data))
    # Insert the record in our database and commit it
    db.session.add(user)
    db.session.commit()

    # Log the user in, as he now has an id
    session['user_id'] = user.id

    # flash will display a message to the user
    flash('Thanks for registering')
    # redirect user to the 'home' method of the user module.
    return redirect(url_for('users.home'))
  return render_template("users/register.html", form=form)
当我通过以下方式启动本地主机时:

python run.py
我找不到404


我可能做错了什么

我猜您没有为站点的根定义路由

@app.route('/')
def your_root_route():
    return "hello"

你能分享你的run.py代码吗?很可能您尚未为“/”路径配置路由。Show your views.pyfile@Spiderman-在views.py?Flask中使用view.py更新了问题,使您可以灵活地构建应用程序。如果你想,你可以在那里定义它,但你基本上可以在任何地方定义它。如果要将其放在views.py中,可以。但是,这并不是严格要求的。