不废话直接来。
vs2017创建一个新的python web项目之后默认链接数据库是sqlite。但是我就想连接到Mysql 上面玩,于是开始倒腾了。下面是步骤
1.修改settings.py 文件需要修改两处
第一处:
INSTALLED_APPS = ['app', # Add your apps here to enable them 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'PythonDjangoPro',] #这一行必须是你创建的web项目名称
第二处:
DATABASES = { #'default': { #'ENGINE': 'django.db.backends.sqlite3', #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #} 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', 'PORT': '3306', 'NAME': 'root', 'USER': 'root', 'PASSWORD': 'root', } }
现在就要处理一个很关键的问题,因为需要添加pymysql到项目python包中
然后咱们需要配置项目加载识别链接数据库方式。在项目路径下找到 __init__.py
#coding:utf-8 import pymysql pymysql.install_as_MySQLdb()
好了咱们现在要去 app/models.py 创建需要创建到数据库中的实体,在models.py中代码如下
#coding:utf-8 from django.db import models class User(models.Model): nickname = models.CharField('昵称', max_length=150) openid = models.CharField('ID', max_length=128, primary_key=True) head = models.URLField('头像') gender = models.CharField('性别', max_length=2, default='保密')
现在配置修改到现在就很想跃跃欲试一下了。但是别急肯定报错,我不想写出来错误,我继续实现正确配置方式。因为现在mysqlclient 肯定出现连接bug,因为版本问题,其实就是有一个版本型号判断在搞鬼
现在打开你python安装目录,依此打开 :X:Program Files (x86)pythonLibsite-packagesdjangodbackendsmysql 找到base.py 用你饥渴难耐的vs2017编辑器注释掉这段该死的代码:
if version < (1, 3, 3): raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
对,是直接注释掉
好了,我们开始一本正经实现一次通过manage.py 实体类创建表到mysql数据库
现在你需要这样
然后在打开的项目目录下面按住shit键,打开右键菜单
现在你需要依此输入一下代码:
python manage.py makemigrations
python manage.py migrate
然后你会看到很多OK
打开Mysql数据库可视化界面看看数据库是不是有东西(表)
好啦,剩下的就自由发挥吧
卧薪尝胆饮咖啡~~