Python: TypeError: требуется целое число (получил тип str) - PullRequest
0 голосов
/ 13 февраля 2020

здесь я получаю ошибку,

 File "C:\Users\DEEDEVTR01\Desktop\python\pyenv\lib\site-packages\MySQLdb\__init__.py",
 line 84, in Connect
 return Connection(*args, **kwargs)   File "C:\Users\DEEDEVTR01\Desktop\python\pyenv\lib\site-packages\MySQLdb\connections.py",
 line 179, in __init__
 super(Connection, self).__init__(*args, **kwargs2) TypeError: an integer is required (got type str)

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

settings.py


DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',
        'HOST': 'localhost',
        'NAME': 'deebaco',
        'USER': 'deebaco',
        'PASSWORD': 'deebaco',
        'PORT': '3306',
    }
}


import MySQLdb

def connection():
    conn = MySQLdb.connect(database="deebaco", user = "deebaco", password = "deebaco", host = "localhost", port = "3306")

    print ("Opened database connect successfully")

    cur = conn.cursor()

    return cur, conn

views.py

from rest_framework import views
from rest_framework.views import APIView

import MySQLdb
from testpro.settings import connection
cur, conn = connection()

class Product_ListAPIView(APIView):
    def get(self,request,format=None):
        cur,conn = connection()
        query = ''' SELECT * FROM products'''
        try:
            with conn.cursor(MySQLdb.cursors.DictCursor) as cursor:
                cursor.execute(query)
                result = cursor.fetchall()
                data = list(result)

            return Response({"data":result},status=status.HTTP_200_OK)
        except Exception as e:
            print(e)

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

1 Ответ

2 голосов
/ 13 февраля 2020

Есть ли у порта соединения кавычки?

Если это так, удалите кавычки, чтобы решить эту проблему:

из:

port = "3306"

до

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