Django知识点:模型-ORM配置-站点管理

模型

MVT中的Model
django 鼓励开发人员使用模块开发,这种开发模式在工作中被称为:解耦合。指在开发过程中将项目看成几个独立的模块进行开发,降低模块之间的耦合性,关联性。

ORM的使用

1. ORM框架:对象关系映射

作用:

是一个用来操作数据的框架
开发人员只需要关注业务逻辑的开发,不需要关心sql语句的编写,降低代码之间的耦合性
提高开发效率,方便后期管理和维护

2. 配置

django默认使用sqlite3 数据库,文档类型的数据库,特点是小,经常用来做测试开发用。
  1. 在settings中设置相关数据库的配置(这里使用的mysq数据库)
    在这里插入图片描述

     'default': {
     	'ENGINE': 'django.db.backends.mysql',  # 引擎
     	'NAME': '1ku',		# 库名
     	'USER': 'root',		# 用户名
     	'PWASSWORD': '123456',		# 密码
     	'HOST': '127.0.0.1',		# 主机  ip地址
     	'PORT': '3306',		# 端口号
     }
    
  2. 在mysql 数据库当中创建一个跟配置信息同名的库

     代码:create database 1ku charset=utf8;
    
  3. 安装pymysql

     可以使用pycharm 安装:pip install pymysql
    
  4. 创建模型 models

     class User (models.Model):
     	id = models.AutoField(primary_key=True)
     	name = models.CharField(max_length=32)
     	age = models.IntegerField()
     	gender = CharField(32)
    
  5. 数据迁移:将写好的数据模型,创建成数据库中的表

    • 在数据前之前,检查相关配置是否正确
      可能出现的错误1
      错误原因:django默认使用的python2 版本的数据库模块,Mysqldb,python3 版本使用的是pymsql
      在这里插入图片描述

      解决方案:在项目主目录中的__init__.py 中增加两行代码

        import pymysql
        pmysql.install_as_MySQLdb()
      

      可能出现的错误2
      错误原因:django 默认检测pymysql 版本
      在这里插入图片描述

      解决方案:修改源码,找到错误的地方,把相关的判断注释掉
      在这里插入图片描述

    • 执行数据迁移
      先生成迁移文件:python manage.py makemigrations
      可能出现的错误3
      错误原因:python3 string没有decode 方法,有encode 方法
      在这里插入图片描述
      解决方案:找到错误的地方,将decode 改成 encode
      在这里插入图片描述

      再次执行 生成迁移文件的代码,生成迁移文件
      在这里插入图片描述

    • 生成迁移文件之后,进行数据迁移,也就是在数据库当中生成表结构
      代码:python manage.py migrate

3. 站点管理

是一个Django 提供的管理后台
访问:127.0.0.1:8000/admin

  1. 先创建超级用户

     python manage.py createsuperuser
    
  2. 注册模型到站点管理,在 admin.py 文件中加入代码

     from django.contrib import admin
     from .models import *
     admin.site.register(User)
     admin.site.register(home)
    

4. 模型元数组

不是字段的数据

class Meta:
	db_table = 'xxx'  # 修改数据库生成的表的默认名字
	verbose_name = '用户表'  # 在站点后台以中文显示表名
	verbose_name_plural = 'verbose_name'  # 默认以复数显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值