Django_ORM操作

#Django默认连接的是sqlite数据库

1.首先MySQL上创建好数据库

2.修改Django中settings.py中的DATABASES及INSTALLED_APPS将你的app名字加到末尾(注册app)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '你的数据库名称',
        'USER': '你的DB用户名',
        'PASSWORD': '你的DB密码',
        'HOST': '你的mysql地址',
        'PORT': '3306',
    }
}
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
]
 

 3.修改Django的project同名目录中__init__.py文件

import pymysql
pymysql.install_as_MySQLdb()

#重启project;现在Django连接数据库的方式改为MySQL

 #通过ORM创建表

#在app中models.py创建类(nid类可以不写,系统会自动创建名为id的自增主键列)

from django.db import models

class UserInfo(models.Model):
    nid = models.BigAutoField(primary_key=True)
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=64)

 #创建完类和注册app之后执行命令将类通过ORM转化成SQL命令写入到数据库中

python manage.py makemigrations

python manage.py migrate

#执行成功后刷新数据库可看到生成的新的数据表(app01_userinfo是通过类创建的,其他是系统自动创建的)

 #增加列

#类中添加数据表的列名和类型(后面可以写(null=True)允许为空或指定默认值)
#修改列名直接改类中的列名然后执行命令 age
= models.IntegerField(default=1) #执行命令 python manage.py makemigrations python manage.py migrate

#添加外键

class UserGroup(models.Model):
    title = models.CharField(max_length=32)

class UserInfo(models.Model):
    nid = models.BigAutoField(primary_key=True)
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField(default=1)
    ug = models.ForeignKey("UserGroup",on_delete=models.CASCADE,null=True)

#ORM会在数据库中创建一个列名“ug_id”的列

 

 #数据表信息操作

#插入数据

from app01 import models

def index(request):
    #向UserGroup表中添加数据
    models.UserGroup.objects.create(title='销售部')
    return HttpResponse('数据库操作...')

#访问url,调用index

http://127.0.0.1:8000/app01/index.html

 #也可以往用户表里插入数据

models.UserInfo.objects.create(username='root',password='pwd',age=18,ug_id=1)

#查询表里数据

group_list = models.UserGroup.objects.all()
print(group_list)

#控制台会输入如下信息

 <QuerySet [<UserGroup: UserGroup object (1)>]>

 #在ORM中类代指的是表,对象代指的一行数据(因为表中只有一条数据,所以列表中有一个对象信息)

 

 

 

 

 #条件查询

#查询ID等于2的部门

group_list = models.UserGroup.objects.filter(id__exact=2)

 

比较查询
    
    exact:表示判等。
    gt 大于 
    gte 大于等于
    lt 小于 
    lte 小于等于

范围查询

     in:是否包含在范围内。

 

#修改数据(修改UserGroup表中id=1的title信息改为"公关部"

models.UserGroup.objects.filter(id=1).update(title="公关部")

 #删除数据(删除UserGroup表中id=4的信息)

models.UserGroup.objects.filter(id=4).delete()

 

 

* 参考oldboy视频整理

转载于:https://www.cnblogs.com/sparkss/p/11589530.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值