django-orm学习记录

初识django项目

在这里插入图片描述

1.创建django项目

django-admin startproject mysite   #创建了一个名为"mysite"的Django 项目

2.创建应用

python manage.py startapp blog 

3.启动项目

python manage.py runserver 8080   
python manage.py runserver 127.0.0.1:8080 #本机就不用写ip地址了 如果连端口都没写,默认是本机的8000端口

4.settings.py
模板文件配置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'template')],
        ...
    }
]

静态文件配置:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

app注册:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 'blog',
    'blog.apps.BlogConfig'

]

ORM

Django之ORM
ORM:object relationship mapping对象关系映射。
操作数据库的映射类,不用写sql语句操作数据库了。

ORM解决的主要问题是对象和关系的映射。它通常将一个类和一张表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。

ORM提供了对数据库的映射,不用直接编写SQL代码,只需操作对象就能对数据库操作数据。

1.创建一个mysql数据库
2.在setting中配置数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  #引擎
        'NAME': 'fororm',                      #数据库名称
        'HOST': '127.0.0.1',                   #数据库IP
        'PORT': 3306,                          #数据库端口
        'USER': 'root',                        #数据库用户名
        'PASSWORD': '****'                   #数据库密码
    }
}

3.使用pymysql模块连接mysql数据库
写在与setting同级目录的__init__.py中

import pymysql   #mysqlclient 连接mysql数据库的python库
pymysql.version_info = (1, 4, 13, "final", 0)  #指定pymysql的版本
pymysql.install_as_MySQLdb()  # 使用pymysql(python3)代替mysqldb(python2)连接数据库

4.写对应关系,在app下的models.py中写类

class User(models.Model):
    username = models.CharField(max_length=32)  #username varchar(32)
    password = models.CharField(max_length=32)  #password varchar(32)

5.执行数据库迁移的命令

python manage.py makemigrations        #记录下models.py的变更记录
python manage.py migrate               #变更记录同步到数据库

6.orm操作:

# ret = models.User.objects.get(username = user,)                 #找不到就报错,找到多个也报错
  ret = models.User.objects.filter(username=user, password = pwd) #对象列表

orm基本操作

# 增
#方法一
models.Tb1.objects.create(c1='xx', c2='oo')   # 增加一条数据,可以接受字典类型数据 **kwargs
#方法二
obj = models.Tb1(c1='xx', c2='oo')
obj.save()
 
 
# 查
models.Tb1.objects.get(id=123)  # 获取单条数据,不存在则报错(不建议)
models.Tb1.objects.all()  # 获取全部
models.Tb1.objects.filter(name='seven')  # 获取指定条件的数据
models.Tb1.objects.exclude(name='seven')  # 去除指定条件的数据
 
 
# 删
models.Tb1.objects.filter(name='seven').delete()  # 删除指定条件的数据
obj = models.Tb1.objects.filter(name='seven').first()
obj.delete() 
 
# 改
models.Tb1.objects.filter(name='seven').update(gender='0')   # 将指定条件的数据更新,均支持 **kwargs
obj = models.Tb1.objects.get(id=1)
obj.c1 = '111'
obj.save()   # 修改单条数据

django开发之model篇-Field类型讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值