当我试图在jinja2中使用“URL\u FOR”时,我得到了一个404的错误,我是不是遗漏了什么?

2024-05-23 13:50:28 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试图在我的MongoDB上创建一个更新特性。我正在创建的网页需要通过前端完全CRUD操作。创建和读取都是完整的,但我似乎无法让我的更新工作。我试图从数据库中提取数据并显示在网页上,这样就可以通过使用表单进行编辑。但我不断得到“mongo未定义”的错误

我已经仔细检查了所有的语法等,据我所知,我的所有代码似乎是正确的。不过,我使用的是mongo shell而不是mongo atlas,所以我想知道这是否是原因?-如果是因为使用mongoshell,我该怎么写呢?你知道吗

@app.route('/edit_recipe/<recipe_id>')
def edit_recipe(recipe_id):
    the_recipe = mongo.db.recipes.find_one({"_id": ObjectId(recipe_id)})
    all_categories = mongo.db.categories.find()
    return render_template('editrecipe.html', recipe=the_recipe, categories=all_categories)

        <li>
            <div class="collapsible-header">
                <div class="col s3">
                    <i class="material-icons">expand_more</i>
                    <a href="{{url_for('edit_recipe', recipe_id=recipe._id)}}"class="waves-effect waves-light btn btn_small">Edit</a>

所以我应该得到的是一个基本的表格,用数据库中的数据预先填好。相反,我得到以下错误信息:

“回溯(最近一次呼叫): 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask\应用程序类型“,第2328行,在调用中” 返回self.wsgi\u应用程序(环境,启动响应) 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask\应用程序类型,第2314行,在wsgi\U应用程序中 响应=self.handle\u异常(五) 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask\应用程序类型,第1760行,在handle\u exception中 重新校准(exc\ U类型、exc\ U值、tb) 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask_兼容.py“,第36行,在reraise” 提高价值 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask\应用程序类型,第2311行,在wsgi\U应用程序中 响应=完全自动发送请求() 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask\应用程序类型,第1834行,在完整的调度请求中 rv=self.handle\u user\u异常(五) 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask\应用程序类型,第1737行,在handle\u user\u exception中 重新校准(exc\ U类型、exc\ U值、tb) 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask_兼容.py“,第36行,在reraise” 提高价值 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask\应用程序类型,第1832行,在完整的调度请求中 rv=自助发送请求() 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\venv\lib\site packages\flask\应用程序类型“,第1818行,在调度请求中” 返回self.view\u函数规则。终结点 文件“C:\Users\Jakey Poo\PycharmProjects\recipebook\应用程序类型,第38行,在“编辑配方”中 配方=mongo.db.配方。查找一个({“\u id”:ObjectId(recipe\u id)}) NameError:未定义名称“mongo”

这是我的要求.txt地址:

Click==7.0
dnspython==1.16.0
Flask==1.0.3
Flask-PyMongo==2.3.0
itsdangerous==1.1.0
Jinja2==2.10.1
MarkupSafe==1.1.1
pymongo==3.8.0
Werkzeug==0.15.4

Tags: 文件id应用程序flask类型venvlibpackages