【Django】操作mysql数据库

1.创建项目 
django-admin startproject TestDemo

2.在setting.py配置允许访问的服务器地址 

ALLOWED_HOSTS = [“192.168.28.123”]

3.启动 
python manage.py runserver 你的ip:你的端口号

启动成功显示如下界面: 
这里写图片描述

4.配置数据库

修改setting.py

DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE':'django.db.backends.mysql',
'NAME':'djgo',
'USER':'root',
'PASSWORD':'root',
'HOST':'127.0.0.1',
'PORT':'3306',
'OPTIONS':{
'init_command':"SET sql_mode='STRICT_TRANS_TABLES'"
}
}
}
然后在setting.py同级的init.py中导入mysql
import pymysql 
pymysql.install_as_MySQLdb()

5.创建一个app: 
注:Django规定,如果要使用模型,必须要创建一个app 
python manage.py startapp MysqlDbModel

6.修改 MysqlDbModel/models.py文件,代码如下:
from django.db import models
class Test(models.Model):
    name = models.CharField(max_length=20)

7.接下来在settings.py中找到INSTALLED_APPS这一项,如下:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'MysqlDbModel',               # 添加此项
)

8.安装python操作mysql的模块

  方式一:使用MySQL官方的mysql.connector模块

    安装mysql.connector模块:

    #去mysql.com官网上下载包并解压
    #cd到解压文件的根目录(该目录下应该有一个setup.py的文件)
    python setup.py install

  方式二:使用pyMsql模块

    安装pyMysql模块:

    pip install pymsql

采用这种方式的话默认会掉个mysqlDB模块,由于没有该模块所以需要修改该配置文件所在目录下的__init__.py文件

import pymysql
pymysql.install_as_MySQLdb()

再次执行方式一的数据库同步命令即可

    

9.创建表

python manage.py migrate #有时会报错,没办法创建成功

报错的时候:

方法一:

  先 python manage.py makemigrations --empty yourappname 生成一个空的initial.py

  再 python manage.py makemigrations 生成原先的model对应的migration file

方法二:

第一步:
   进入数据库,找到django_migrations的表,删除该app名字对应的所有记录。
   python   manage.py    dbshell
   use <your_db_name>
   delete from django_migrations where app='<your_app_name>';
   
第二步:
    删除该app名字下的migrations下的除了__init__.py之外的文件。
第三步:执行下面这两条命令:(在项目目录下)
   python manage.py makemigrations
   python manage.py migrate
   
   原因:
   django_migrations表记录着数据库的对应表的修改记录。
   每次修改后,都执行第三步的命令,然后在第二步的文件夹下生成修改的文件,django_migrations表记录修改的变更过程。

 

posted @ 2017-08-02 14:19  丰study  阅读(158)  评论(0)    收藏  举报