Django的介绍与迁移问题

django中的数据库迁移 Django是用python写的web开发框架,其特点是:

1.重量级框架,内部封装了很多的功能组件,使开发变的简便快速,

2.MVT模式:前后端分离,高内聚低耦合,m:model,与mvc中的m功能相同,负责和数据库交互,进行数据处理,v:view,与mvc中的c功能相同,接收请求,进行业务处理,返回应答,                t:template,与mvc中的v功能相同,负责封装构造要返回的html。

orm:对象关系映射,主要实现模型对象到数据库数据的映射。

1.首先要在models.py中建立模型类,示例:

from django.db.models import *
class User(Model):
    dingid_w = CharField('钉钉Id', max_length=128, null=False, blank=False, default='', unique=True)
    userid = CharField('员工唯一标识ID', max_length=128, null=False, blank=False, default='', unique=True)
    name = CharField('成员名称', max_length=128, null=False, blank=False, default='')
    mobile = CharField('手机号码', max_length=64, null=False, blank=False, default='', db_index=True)
    tel = CharField('分机号', max_length=64, null=False, blank=False, default='', db_index=True)
    avatar = ImageField('头像url', max_length=1024, null=False, blank=False, default='')
    work_place = CharField('办公地点', max_length=128, null=False, blank=False, default='')
    ding_remark = CharField('备注', max_length=1024, null=False, blank=False, default='')
    email = CharField('员工的电子邮箱', max_length=128, null=False, blank=False, default='')
    org_email = CharField('员工的企业邮箱', max_length=128, null=False, blank=False, default='')
    active = BooleanField('是否已经激活', null=False, blank=False, default=False)
    is_admin = BooleanField('是否为企业的管理员', null=False, blank=False, default=False)
    is_boss = BooleanField('是否为企业的老板', null=False, blank=False, default=False)
    is_hide = BooleanField('是否号码隐藏', null=False, blank=False, default=False)
    position = CharField('职位信息', max_length=128, null=False, blank=False, default='')
    hired_date = DateTimeField('入职时间', null=True, default=None)
    jobnumber = CharField('员工工号', max_length=128, null=False, blank=False, default='', db_index=True)

    class Meta:
        verbose_name = verbose_name_plural = '用户信息'

2.在settings.py文件中把models.py所在的子应用也要加入配置项,否则orm数据库无法别识别到

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'userdj3.apps.Userdj3Config',#注册子应用  
]

3.将模型类在admin.py中注册

from django.contrib import admin

# Register your models here.
from userdj3.models import User
admin.site.register(User)

4.接下来就是数据库迁移的命令

python manage.py migrate # 根据数据库迁移文件生成对应SQL语句并执行   # 初次执行时为了先把默认Django需要的数据库创建出来   python manage.py makemigrations # 创建数据库迁移文件   # 这次执行是为了创建app中的class模型类的迁移文件   python manage.py   # 将新添加的模型类迁移文件生成对应SQL并执行,实际创建出来对应的表

这个是Django3.0 迁移的一个问题:

出现这种错误“django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.”

原因:

1).可能是在项目引进pymysql这个驱动;
2).可能是MySQLclient 这个库没有安装 安装命令如下 pip install mysqlclient -i https://pypi.douban.com/simple>
解决原因1 :
项目init关于pymysql驱动给注释文件位置在(项目/init.py)

# import pymysql
# # pymysql.version_info = (1, 3, 13, "final", 0)
# pymysql.install_as_MySQLdb()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值