pycharm连接mysql数据库遇到的问题以及django使用时遇到的问题

本文详细解析了Django框架中常见的配置与编程错误,包括版本冲突、设置不当、应用名称重复、ForeignKey与OneToOneField的正确用法,以及urls.py的错误配置,并提供了具体的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

版本不匹配,把django版本换成2.1.3

2.

django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
 

运行出错,应该设置成运行django而不是python。

3.

django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: learning_logs

我遇到的问题是名字使用重复,在setting中的

INSTALLED_APPS

改一下,在这个范围中有重复的使用这个名,删掉即可,

4.TypeError: __init__() missing 1 required positional argument: 'on_delete'

django2.0版本以后需要加on_delete

定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:

举例说明:
user=models.OneToOneField(User)
owner=models.ForeignKey(UserProfile)
需要改成:
user=models.OneToOneField(User,on_delete=models.CASCADE) --在老版本这个参数(models.CASCADE)是默认值
owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) --在老版本这个参数(models.CASCADE)是默认值
参数说明:
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
CASCADE:此值设置,是级联删除。
PROTECT:此值设置,是会报完整性错误。
SET_NULL:此值设置,会把外键设置为null,前提是允许为null。
SET_DEFAULT:此值设置,会把设置为外键的默认值。
SET():此值设置,会调用外面的值,可以是一个函数。
一般情况下使用CASCADE就可以了。

5.django.core.exceptions.ImproperlyConfigured: Passing a 3-tuple to include() is not supported. Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead.

django2.0后不支持使用在urls.py中写

url(r'^admin/', include(admin.site.urls))

,直接用

path('admin/', admin.site.urls),
### 配置 PyCharm 中的 Django 项目以连接 MySQL 数据库 为了使 Django 项目能够成功连接MySQL 数据库,在 PyCharm 社区版中需要完成以下几个关键步骤: #### 1. 修改 `__init__.py` 文件 在项目的根目录下找到 `__init__.py` 文件(注意不是应用目录下的同名文件),并向其中添加以下代码片段。此操作是为了让 Python 将 PyMySQL 库作为 MySQLdb 来使用,从而支持 Django数据库引擎功能。 ```python import pymysql pymysql.install_as_MySQLdb() ``` 这一步非常重要,因为默认情况下 Django 使用的是 MySQLdb 库,而该库可能不适用于某些环境或版本组合[^1]。 --- #### 2. 配置 `settings.py` 文件中的数据库部分 打开 Django 项目的 `settings.py` 文件,并将默认的 SQLite 数据库配置替换为 MySQL 数据库的相关参数。以下是具体的配置示例: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_database_name', # 替换为实际的数据库名称 'HOST': '127.0.0.1', # 默认本地主机地址 'PORT': 3306, # 默认端口 'USER': 'your_username', # 替换为你的 MySQL 用户名 'PASSWORD': 'your_password' # 替换为对应的密码 } } ``` 上述字段需根据实际情况调整,特别是 `'NAME'`, `'USER'`, 和 `'PASSWORD'` 字段的内容应匹配目标 MySQL 实例的实际设置[^3]。 --- #### 3. 执行数据迁移命令 当数据库配置完成后,运行以下两条管理命令以同步模型定义至数据库结构并初始化必要的表项: ```bash python manage.py makemigrations python manage.py migrate ``` 这些命令会基于当前的应用程序模型自动生成所需的 SQL 表结构,并将其应用于指定的目标数据库实例[^2]。 --- #### 4. 路由配置 (可选) 虽然这不是直接与数据库连接有关的部分,但在完整的 Web 开发流程里,通常还需要编辑 `urls.py` 文件来设定 URL 映射关系。通过这种方式可以确保前端请求能被正确转发给后端处理逻辑所在的视图函数[^4]。 例如,简单的路径映射可能是这样的形式: ```python from django.urls import path from . import views urlpatterns = [ path('example/', views.example_view), ] ``` 这里假设存在名为 `example_view` 的方法用于响应特定 HTTP 请求。 --- #### 总结 以上四个主要环节涵盖了从基础准备到最终验证整个过程的关键要素。按照顺序逐一实施即可实现预期效果——即利用 PyCharm 创建的 Django 工程顺利接入外部 MySQL 存储资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值