欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python3之Django Web框架模型篇(一)

程序员文章站 2022-07-03 23:19:44
...

ORM:对象关系映射

模型类与数据表的映射关系:

类名《========》表名即(应用的名字_类名)
属性《========》字段
对象《========》记录(一条完整的数据信息)

数据库connector配置(两种方式)


  1. pip install mysqlclient
  2. 在models所在包中的init文件中写入:

Django默认导入MySQLdb作为与数据库的接口,想使用pymysql作为接口必须填入:
import pymysql
pymysql.install_as_MySQLdb()

设计表及表与表的关系

在models中定义好类,属性等

建好数据库,在settings中配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '',
        'PORT': '3306'
    }
}

做数据库迁移:

python manage.py makemigrations
python manage.py migrate

数据库生成模型类:

python manage.py inspectdb > 应用名/models.py

数据创建方式:

创建数据
# 第一种方式id可以不需要处理,id会被自动处理,前端的序号可以使用forloop.counter,推荐使用!!!
mdl_obj = models.Book.objects.create(bname="三毛选集", bauthor='三毛', bpub_date='2017-11-10', bprice='10');


mdl_obj产生的对象可以使用对象的方法获取属性值;


# 第二种方式
# obj = models.Book(username='', password="")
# obj.save()
# 第三种方式
# dic = {'username': '', 'password': ''}
# models.Book.objects.create(**dic)
更新数据(两种方式)
#第一种(推荐):
#models.Book.objects.all().update(password=)
#models.Book.objects.filter(bid=).update(password=)

#第二种(虽然更改某个数据,ORM会更新所有数据,效率低):
#mdl_obj = models.Book(username='',password='')
#mdl_obj.username = ''
#mdl_obj.save()