本地:python3.8+django
docker:mysql
启动mysql容器
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
进入容器
docker exec -it mysql bash
mysql -u root -p
show databases;
user mysql;
select from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456' ;
使用navaciat连接时
*注意mysql的ip为docker-machine ls的ip 192.168.99.100,而不是机器本身的ip
django使用mysql数据库
先安装pip install pymsql
import pymysql
pymysql.install_as_MySQLdb()
照着教程在init里加了这个,报错,require1.4.0,看了下,pymysql最高也才1.0
python38 -m pip install pymysql==1.4.0
百度了下,直接安装mysqlclient
python38 -m pip install -U mysqlclient 就可以了 ,把上面两行注释掉
命令行执行:
django-admin.py startproject HelloWorld #创建jdango工程
进入helloworld创建app
django-admin.py startapp TestModel
moduls.py
from django.db import models
class BookData(models.Model):
name = models.CharField(max_length=20)
id= models.IntegerField(primary_key=True)
admin.py
from django.contrib import admin
from TestModel.models import BookData
# Register your models here.
admin.site.register(BookData)
urls.py
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
setting文件:
DATABASES = {
'default':
{
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'pipline', # 数据库名称
'HOST': '192.168.99.100', # 数据库地址,
'PORT': 3306, # 端口
'USER': 'root', # 数据库用户名
'PASSWORD': '123456', # 数据库密码
}
}
命令行执行
python38 manage.py runserver #启动服务
python38 manage.py migrate
python38 manage.py makemigrations
创建超级用户
python38 manage.py createsuperuser,创建用户后,即可登录
登录后,就可以使用admin管理某个数据类型
[图片上传失败...(image-30bf01-1601483460379)]
image.png页面插入数据后,可以进入mysql后查看,数据表已有数据
[图片上传失败...(image-23d65d-1601483460379)]
image.png注:退出容器后,记得docker commit
docker commit id mysql:v2
或者直接启动上次执行过的容器,docker ps -a 查看
然后docker start id
网友评论