【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表记录修改的变更过程。

浙公网安备 33010602011771号