python - Python:TypeError:需要一个整数(获取类型 str)
问题描述
在这里我得到了错误,
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)
我认为连接是正确的,但我不确定为什么会出现此错误,如果有人能帮助我找出我做错了什么,那就太好了。
设置.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
视图.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)
我认为连接是正确的,但我不确定为什么会出现此错误,如果有人能帮助我找出我做错了什么,那就太好了
解决方案
连接的端口有引号吗?
如果是这样,请删除引号以解决此问题:
从:
port = "3306"
至
port = 3306
推荐阅读
- heroku - 为什么我在 Heroku 上的应用程序在使用免费的 dyno Heroku 应用程序睡觉后会自行重启?
- python - 这是在 python 上创建弱引用缓存的好习惯吗?
- django - 我可以使用 Sphinx 在 django 项目中编写我的帮助文档吗
- uwp - UWP 社区工具包 DataGrid onecoreuap 错误
- mysql - 当有多行时如何将查询的结果(行)存储在变量中
- mysql - 只显示选择 SQL 中的前 5 个字符?
- html - 仅关注特定媒体查询中的链接
- javascript - Ace Editor - 当我按下空格键时自动完成触发
- sql - 如何在不使用子查询的情况下编写此查询?
- google-apps-script - 谷歌表根据日期比较更改标签颜色