龙空技术网

Django教程——02连接初始化数据库

随风飘1990 291

前言:

而今小伙伴们对“python函数初始化”大概比较注重,看官们都需要分析一些“python函数初始化”的相关资讯。那么小编也在网上汇集了一些对于“python函数初始化””的相关内容,希望兄弟们能喜欢,同学们一起来了解一下吧!

Django教程——01安装使用

在上面一篇文章里,介绍了安装Django的方法,这里说说连接数据库吧

这篇主要介绍踩的坑和解决办法

正常连接和初始化数据库的命令是

 python manage.py migrate

执行这个命令的时候,出现了如下报错

django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

经过一段排查,是我配置数据库的时候,多嵌套了一层default,修改为如下即可

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',        'NAME': 'dbname',        'USER': 'root',        'PASSWORD': '****',        'HOST': '127.0.0.1',        'PORT': '3306',        # 'ENGINE': 'django.db.backends.sqlite3',        # 'NAME': BASE_DIR / 'db.sqlite3',    }}

然后继续执行migrate时,会报如下错误

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.Did you install mysqlclient?

本机环境是mac电脑,按官方教程操作的时候,发现安装mysqlclient的python包会依赖本机安装mysql或者mysql-client,但在装mysql和mysql-client的时候,发现一直报错。后面发现解决办法是,在settings.py文件里,加下如下代码,即改用pymsql连接即可。

import pymysqlpymysql.install_as_MySQLdb()

或者在settings.py同目录的__init__.py里加如上代码也可以

然后再执行python manage.py migrate命令会发现表顺利创建。新增表,不影响原有库的其他表。

Running migrations:  Applying contenttypes.0001_initial... OK  Applying auth.0001_initial... OK  Applying admin.0001_initial... OK  Applying admin.0002_logentry_remove_auto_add... OK  Applying admin.0003_logentry_add_action_flag_choices... OK  Applying contenttypes.0002_remove_content_type_name... OK  Applying auth.0002_alter_permission_name_max_length... OK  Applying auth.0003_alter_user_email_max_length... OK  Applying auth.0004_alter_user_username_opts... OK  Applying auth.0005_alter_user_last_login_null... OK  Applying auth.0006_require_contenttypes_0002... OK  Applying auth.0007_alter_validators_add_error_messages... OK  Applying auth.0008_alter_user_username_max_length... OK

标签: #python函数初始化