Файл не найден (ошибка № 2), такого каталога или файла нет - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь вывести все записи из своей базы данных, используя tkinter, включая сохраненные изображения, но у меня возникают проблемы.Мое подключение к моей базе данных очень хорошо.Мои коды работали так хорошо, пока я не решил получить доступ к записям строк в моей базе данных.Я прошел фотопуть и нашел, что все в порядке.Я также написал код конфигурации изображения, который можно увидеть в моих кодах.Ниже приведены мои коды для этого:

Я прошел свой код и путь к местоположению изображения и нашел все в порядке.Для моей таблицы базы данных в редакторе Mysql тип данных моей фотографии varchar (255).

При вставке моей фотографии в редактор запросов Mysql я использовал set photo = (c: \ mycomputername \ pictures \ DB \ Tj.jpg), я также использовал set photo = Tj.jpg, но оба по-прежнему не работаликогда я пытаюсь вызвать их в своем коде Python

import pymysql
import mysql.connector

import tkinter as tk
from tkinter import messagebox
from tkinter import filedialog

from tkinter import ttk
from PIL import ImageTk, Image
import os
import shutil

import db_config

def on_tab_selected(event):
selected_tab = event.widget.select()
tab_text = event.widget.tab(selected_tab, "text")

if tab_text == "All Records":
    print("All records selected tab selected")
if tab_text == "Add New Records":
    print("Add new records tab selected")

def load_database_results():
global rows
global num_of_rows
try:
    con = pymysql.connect(
        host = db_config.db_server,
        user = db_config.db_user,
        password = db_config.db_pw,
        database = db_config.db
    )

    sql = "SELECT * FROM participants"
    cursor = con.cursor()
    cursor.execute(sql)
    rows = cursor.fetchall()
    num_of_rows = cursor.rowcount
    cursor.close()
    con.close()
    has_loaded_successfully = True
    messagebox.showinfo("Connected to Database", "Connection okay")

except pymysql.InternalError as e:
    messagebox.showinfo("Connection Error", e)
except pymysql.OperationalError as e:
    has_loaded_successfully = database_error()
except pymysql.ProgrammingError as e:
    has_loaded_successfully = database_error()
except pymysql.DataError as e:
    has_loaded_successfully = database_error()
except pymysql.IntegrityError as e:
    has_loaded_successfully = database_error()
except pymysql.NotSupportedError as e:
    has_loaded_successfully = database_error()

return has_loaded_successfully

def database_error(err):
messagebox.showinfo("Error", err)
return False

def image_path(file_path):
open_image = Image.open(file_path)
image = ImageTk.PhotoImage(open_image)
return image

def load_photo_tab1(file_path):
image = image_path(file_path)
imgLabelTab1.configure(image = image)
imgLabelTab1.image = image

filename = "default.jpg"
path = db_config.PHOTO_DIRECTORY + filename

rows = "None"
num_of_rows = "None"

form = tk.Tk()
form.title("The App")
form.geometry("500x280")

tab_parent = ttk.Notebook(form)
tab1 = ttk.Frame(tab_parent)
tab2 = ttk.Frame(tab_parent)

tab_parent.bind("<<NotebookTabChanged>>", on_tab_selected)
tab_parent.add(tab1, text = "All Records")
tab_parent.add(tab2, text = "Add New Records")

fName = tk.StringVar()
sur = tk.StringVar()
dept = tk.StringVar()

fNameTab2 = tk.StringVar()
surTab2 = tk.StringVar()
deptTab2 = tk.StringVar()

# WIDGETS FOR TAB1

firstLabelTab1 = tk.Label(tab1, text = "FirstName")
surnameLabelTab1 = tk.Label(tab1, text = "Surname")
deptLabelTab1 = tk.Label(tab1, text = "Department")

firstEntryTab1 = tk.Entry(tab1, textvariable = fName)
surnameEntryTab1 = tk.Entry(tab1, textvariable = sur)
deptEntryTab1 = tk.Entry(tab1, textvariable = dept)

#openImageTab1 = Image.open(path)
#imgTab1 = ImageTk.PhotoImage(openImageTab1)                            
#replacing these three lines with the line next to them below
#imgLabelTab1 = tk.Label(tab1, image = imgTab1)    #replacing this line 
with the line just below it.

imgTab1 = image_path(path)
imgLabelTab1 = tk.Label(tab1, image = imgTab1)
btnFwd = tk.Button(tab1, text = "Forward")
btnBkw = tk.Button(tab1, text = "Backward")

#WIDGETS TO GRID ON TAB1

firstLabelTab1.grid(row = 0, column = 0, padx = 15, pady = 15)
firstEntryTab1.grid(row = 0, column = 1, padx = 15, pady = 15)

surnameLabelTab1.grid(row = 1, column = 0, padx = 15, pady = 15)
surnameEntryTab1.grid(row = 1, column = 1, padx = 15, pady = 15)

deptLabelTab1.grid(row = 2, column = 0, padx = 15, pady = 15)
deptEntryTab1.grid(row = 2, column = 1, padx = 15, pady = 15)

imgLabelTab1.grid(row=1, column=5, rowspan=3, padx=15, pady=15)
btnBkw.grid(row = 3, column = 0, padx = 15, pady = 15)
btnFwd.grid(row = 3, column = 2, padx = 15, pady = 15)

#WIDGETS FOR TAB2
firstLabelTab2 = tk.Label(tab2, text = "FirstName")
surnameLabelTab2 = tk.Label(tab2, text = "Surname")
deptLabelTab2 = tk.Label(tab2, text = "Department")

firstEntryTab2 = tk.Entry(tab2, textvariable = fNameTab2)
surnameEntryTab2 = tk.Entry(tab2, textvariable = surTab2)
deptEntryTab2 = tk.Entry(tab2, textvariable = deptTab2)

#openImageTab2 = Image.open(path)                                      
replacing these three lines with the line just below them
#imgTab2 = ImageTk.PhotoImage(openImageTab2)
#imgLabelTab2 = tk.Label(tab2, image = imgTab2)

imgTab2 = image_path(path)
imgLabelTab2 = tk.Label(tab2, image = imgTab2)


 Another file db_config.py:

 PHOTO_DIRECTORY = "C:\\Users\\mycomputername\\Pictures\\DB\\"

 db_server = "localhost"
 db_user = "root"
 db_pw = "****"
 db = "work"

Я ожидаю ситуацию, когда при запуске моих кодов вместо изображения по умолчанию, изображение в моей строке базы данных 1, столбец 3, который является моим столбцом фотографий, должно отображаться в столбце, но он показывает ошибку, файл не найден

theAPP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...