django中的models模块及数据库一些基本操作

使用django自带的轻量级数据库sqlite

mvc 开发模式(Java,php)             django是mtv模式

m------model 操作数据库的          m------model 操作数据库的

v------view视图                          t------template视图

c------controller控制逻辑             v------view控制逻辑

1.首先定义表及字段 在models.py中,然后在manage.py的目录执行,后续对表结构的任何操作都需要执行下面这两个命令

python3 manage.py makemigrations(生成数据文件)

python3 manage.py migrate(生成表结构)

2.管理后台操作数据库 需要在admin.py中增加,如下所示,就可以在后台管理中给表添加删除数据了

3.创建数据库完成后可以对数据库进行一些常规操作(增删改查)

批量数据的删除和添加操作不需要 调用save

all,filter和exclude 返回的数据都是批量的(一个列表)

取一条数据就是取下标,取一条数据里面某个字段的元素直接.xxx(xxx是字段名)

import django,os
os.environ.setdefault(‘DJANGO_SETTINGS_MODULE‘,‘dj_mh.settings‘)
django.setup()
from user.models import Category
from django.db.models import Q

#添加数据
#第一种添加方式
# Category.objects.create(name=‘python‘)#新增数据,create_time,update_time不需要添加
#第二种添加方式 实例一个对象然后 调用save方法
# obj = Category(name=‘mysql‘)
# obj.save()

# obj1 = Category.objects.create(name=‘mysql1‘)
# print(obj1.name)
# print(obj1.create_time)
# print(obj1.update_time)

#查询数据(获取字段信息的话查询出一条数据后.‘字段名‘)
# Category.objects.all()#查询全部
# #get方法只能返回一条数据
# obj_get = Category.objects.get(id=1)#获取一条数据 括号里是查询条件
# print(Category.objects.get(name=‘python‘))#获取一条数据 括号里是查询条件
# print(obj_get.name)

#filter返回符合条件的多条数据
# obj_filter = Category.objects.filter(id__gt=1)
# print(obj_filter)#返回一个list 如果取单个元素可以通过下标方式获取

# #exclude返回不符合条件的多条数据
# obj_exculde = Category.objects.exclude(id__gt=1)
# print(obj_exculde)#返回一个list 如果取单个元素可以通过下标方式获取
# obj_exculde.first()#取列表的第一个元素
# obj_exculde.last()#取列表的最后一个元素

#id__gt=1(id大于1)
#id__lt=1(id小于1)
#id__gte=1(id大于等于1)
#id__lte=1(id小于等于1)

# print(Category.objects.filter(name__startswith=‘l‘))#以l开头的
# print(Category.objects.filter(name__endswith=‘x‘))#以x结尾的

#name__ixxxxx与name__xxxx都是找包含‘xxxx‘的,只不过i不区分大小写
#以i开头的都是不区分大小写的
# print(Category.objects.filter(name__iendswith=‘e‘))
# print(Category.objects.filter(name__endswith=‘E‘))

#in 会查询出在list中的
# print(Category.objects.filter(name__in=[‘linux‘,‘db2‘]))

#or 查询 需要引用一下
# print(Category.objects.filter(Q(name=‘mysql‘)|Q(name=‘oracle‘)))

#修改(修改批量数据不需要save)
# Category.objects.update(dress=‘dog‘)#修改全表数据
# Category.objects.update(is_delete=True)#

#修改一条数据
# obj = Category.objects.get(name=‘首页‘)
# obj.dress = ‘cat‘
# obj.save()

#删除(删除批量数据不需要save)
# Category.objects.all().delete()#删除所有数据
# Category.objects.filter(name__in=[‘mysql‘,‘oracle‘]).delete()

#删除一条数据
# obj = Category.objects.get(name=‘mysql1‘)
# obj.delete()

#排序
# print(Category.objects.all().order_by(‘name‘))#升序
# print(Category.objects.all().order_by(‘-name‘))#降序

原文地址:https://www.cnblogs.com/mhmh007/p/12091883.html

时间: 2024-10-03 11:04:51

django中的models模块及数据库一些基本操作的相关文章

Django中的app及mysql数据库篇(ORM操作)

Django常见命令 在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目.启动Django程序.创建新的APP.数据库迁移等. 创建Django项目 一把我们都新建一个文件夹来存放项目文件,切换到这个目录下,启动命令行工具.创建一个名为mysite的Django项目: django-admin startproject mysite 创建好项目之后,可以查看当前目录下多出一个名为mysite的文件夹,mysite的文件夹目录结构如下: mysite/ ma

1205 CSRF跨站请求与django中的auth模块使用

目录 今日内容 昨日回顾 基于配置文件的编程思想 importlib模块 简单代码实现 跨站请求伪造csrf 1. 钓鱼网站 如何实现 模拟该现象的产生 2. 解决问题 解决 {% csrf_token %} 3. ajax如何解决 方式1 方式2 方式3 4. csrf相关的两个装饰器 1. 使用 2. 两个装饰器在CBV上的异同 django里settings源码剖析 django有两个配置文件 django auth模块 1. 是什么 2. 常用方法 2.1 创建用户 create_use

django中配置多个mongodb数据库

在Djnago中使用MongoDB数据库时,使用mongoengine模块.在settings中配置数据库连接如下: from mongoengine import connect connect('dbname1', host='127.0.0.1', port=27017) 其中的dbname1为要连接的mongodb数据库名字,host为mongodb数据库ip,port为相应的端口. 上面为单个数据库的配置,如果要配置多个数据库,一要在settings中增加数据库连接:二要在models

Django中的auth模块

from django.contrib import auth authenticate() 提供了用户认证功能,即验证用户名以及密码是否正确,一般需要username .password两个关键字参数. 如果认证成功(用户名和密码正确有效),便会返回一个 User 对象. authenticate()会在该 User 对象上设置一个属性来标识后端已经认证了该用户,且该信息在后续的登录过程中是需要的. 用法: user = authenticate(username='usernamer',pa

Django中利用type动态操作数据库表

场景分析: 后台MySql数据库保存了一大批按股票代码命名的数据表,每张表保存的是每只股票的日线数据. stock_000002 stock_600030 stock_600020 ...一共3000多个表. Django中如果要按股票代码展示每张表的数据,利用常规ORM模型变得非常困难,因为有3000多个表,就需要建3000多个模型. 解决办法: 1. 根据表名.字段等动态创建ORM表模型 def create_model(name, fields=None, app_label='', mo

电子商务(电销)平台中用户模块(User)数据库设计明细

以下是自己在电子商务系统设计中的订单模块的数据库设计经验总结,而今发表出来一起分享,如有不当,欢迎跟帖讨论~ 用户基础表(user_base)|-- 自动编号 (user_id)|-- 用户名 (user_name)|-- 手机号码|-- 电子邮件|-- 登录密码 (password)|-- 用户状态 (status) 用户开放登录帐号表|-- 自动编号|-- 用户编号|-- 腾讯QQ号码 (qq)|-- 微信号码 (wechat)|-- 淘宝帐号 (taobao)|-- Skype (skyp

Django Admin后台管理模块的使用

Admin后台管理模块的使用 Django的管理员模块是Django的标准库django.contrib的一部分.这个包还包括其它一些实用的模块: django.contrib.auth django.contrib.sessions django.contrib.comments 激活admin模块的方法是: 1. 在INSTALLED_APPS设置文件中,加入'django.contrib.admin' 2. 再添加 'django.contrib.auth', 'django.contri

Django中的会话技术(Cookie,Session,Token)

一.Cookie 客户端技术,将数据信息存储到浏览器中,存储的结构是字典结构,即key-value. Cookie是服务端创建,但保存于客户端,客户端每次发送请求时都会将Cookie信息发送到服务器(因为Cookie是请求头信息的一部分) Cookie不支持中文,不能跨浏览器,不能跨域名 1.设置cookie HttpResponse.set_cookie() response.set_signed_cookie("Cookie名称","Cookie值",salt=

四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

Django框架,models.py模块,数据库操作--创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, oracle,postgresql数据库. 1,django默认使用sqlite的数据库,默认自带sqlite的数据库驱动   引擎名称:django.db.backends.sqlite3 在全局配置文件settings.py可以看到确认配置使用的sqlite数据库 # Database # h