django 配置mysql流程以及运行报错的解决
0 环境
系统环境:window 编辑器:IDEA 开发语言:django3.1.1
1 配置数据库
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
'default': {
'ENGINE': 'django.db.backends.mysql',
# 'NAME': 'mysitedb',
'NAME': 'myblog',
'HOST': '127.0.0.1',
'PORT': '3306',
'USER': 'root',
'PASSWORD': '123',
}
}
2 配置models
from django.db import models
# Create your models here.
class SiteInfo(models.Model):
# 数据库默认为null 在填写表单的时候blank可以为空
title = models.CharField(null=True,blank=True,max_length=50)
logo = models.ImageField(upload_to="logo/",null=True,blank=True)
def __str__(self):
return self.title
3 在admin中注册model
from django.contrib import admin
from .models import SiteInfo
# @admin.register(SiteInfo)
# class SiteInfoAdmin(admin.ModelAdmin):
# link_display = ('id', 'title', 'logo')
admin.site.register(SiteInfo)
3 数据迁移报错
「pymysql报错'mysqlclient 1.3.13 or newer is required'」
import pymysql
pymysql.version_info=(1, 4, 2, "final", 0)
pymysql.install_as_MySQLdb()
3 执行迁移
# 适用于单个应用
python manage.py makemigrations
python manage.py migrate
4 启动项目
python manage.py runserver
5 访问admin
「进入项目根目录」
python manage.py createsuperuser
6 进入myblog
7 注意项
「注意:没有myblog名 大概率没有添加admin.site.register(某个model)」
「注意:有时会添加报错 没有遇到 直接略过」
1.根据报错定位,如图下
2.按照mvt的流程排查 比如model写的是否对,我就错在__str__
3.检查是否迁移成功了 2 3不分先后(看情况)
若是迁移问题
旧文件删除 重新生成
、
在多应用的环境下 加需要迁移的某个应用名了
python manage.py makemigrations myblog(指定应用名)
python manage.py migrate myblog(指定应用名)
8 小结
作者:以罗伊
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。