正在获取“UnboundLocalError:赋值前引用的局部变量'connection'”

2024-07-03 06:14:25 发布

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

Im是python中的一个新特性,我试图将一个连接变量赋给另一个.py文件中的函数,从而得到上述错误

我试图将连接设置为“无”,但没有解决我的问题

在视图.py在

from datetime import datetime
from flask import render_template, request, redirect, url_for, flash
from FlaskWebProject1 import app

import json
import mysql.connector
from mysql.connector import Error
import FlaskWebProject1.db 



@app.route('/')
@app.route('/users')
def users():

  try: 
    lstUsers = ''

    #connect to DB
    connection = db.get_connection()

    if connection.is_connected():
        #db_Info = connection.get_server_info()
        #print("Connected to MySQL Server version ", db_Info)
        cursor = connection.cursor(dictionary=True)
        cursor.execute("select * from users;")
        record = cursor.fetchall()
        lstUsers = record       
        #print("Your connected to database: ", record)
  except Error as e:
         print("Error while connecting to MySQL", e) 
  finally:
        if (connection.is_connected()):
            cursor.close()
            connection.close()
            print("MySQL connection is closed")

  return render_template('users.html',
    title = 'Users Page', 
    users = lstUsers)

在数据库在

^{pr2}$

Traceback (most recent call last): File "C:\Users\Usuario\source\repos\FlaskWebProject1\FlaskWebProject1\FlaskWebProject1\views.py", line 24, in users connection = db.get_connection() NameError: name 'db' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Users\Usuario\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1982, in wsgi_app response = self.full_dispatch_request() File "C:\Users\Usuario\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request rv = self.handle_user_exception(e) File "C:\Users\Usuario\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1517, in handle_user_exception reraise(exc_type, exc_value, tb) File "C:\Users\Usuario\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask_compat.py", line 33, in reraise raise value File "C:\Users\Usuario\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request rv = self.dispatch_request() File "C:\Users\Usuario\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1598, in dispatch_request return self.view_functionsrule.endpoint File "C:\Users\Usuario\source\repos\FlaskWebProject1\FlaskWebProject1\FlaskWebProject1\views.py", line 37, in users if (connection.is_connected()): UnboundLocalError: local variable 'connection' referenced before assignment 127.0.0.1 - - [09/Sep/2019 23:56:55] "GET / HTTP/1.1" 500 - 127.0.0.1 - - [09/Sep/2019 23:56:55] "GET /favicon.ico HTTP/1.1" 404 -

我希望在视图.py返回中的连接的get_connection()的文件数据库并使用该连接来连接到MySQL服务器


Tags: inpyimportappflasksourcerequestline
1条回答
网友
1楼 · 发布于 2024-07-03 06:14:25

错误显示

NameError: name 'db' is not defined` 

所以这是你的主要问题和其他问题的根源。在

你有

^{pr2}$

所以你需要FlaskWebProject1.

connection = FlaskWebProject1.db.get_connection()

或者你应该进口

from FlaskWebProject1 import db

相关问题 更多 >