Django框架学习记录(3)

自动驾驶开发者必看:nuscenes数据集23类物体标注全解析(附避坑指南) 本文深入解析nuscenes数据集的23类物体标注系统,为自动驾驶开发者提供全面的标注规范解读和实战避坑指南。涵盖多模态数据组织、类别细分规则、属性系统应用技巧以及标注质量验证方法,帮助开发者高效利用这一标杆数据集提升模型性能。 阅读详情

简介:本章主要介绍基于Django模型使用数据库

一、配置数据库信息

以MySQL为例,需要在setting.py文件中找到DATABASES

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # 配置为MySQL
        'NAME': 'xxx',                        # 数据库名
        'USER': 'xxxx',                       # 数据库登录账户
        'PASSWORD': 'xxxx',                   # 密码
        'HOST': '127.0.0.1',                  # 数据库ip地址
        'PORT': 3306,                         # 数据库端口号
        'OPTIONS':{
           "init_command": "set foreign_key_checks = 0;", # 取消外键约束
    }
}

需要安装mysqlclient,如果mysqlclient使用pip安装失败就去官网下载

mysqlclient · PyPIPython interface to MySQLhttps://pypi.org/project/mysqlclient/#files

二、用Django中的orm操作数据库

    orm的作用为在关系型数据库和业务实体对象之间进行映射,orm对底层进行了封装与隔离,在使用Django开发的项目时,无需关心程序使用的是mysql还是Oracle数据库,在操作具体的数据库时,也无需和复杂的SQL语句打交道,只需要使用orm提供的API操作就行。

    每个模型都是一个Python类,每个模型都会映射到一个数据库表上

类:数据库中的数据表

属性:数据库中的字段

实例:数据库表中的数据行

1、创建数据库

首先确保mysql服务是启用中的

 

 创建数据库命令:create database  fqq DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

2、使用orm创建表

     所有Django模型都必须继承自Model类,Model类位于包django.db.models中。在app目录下的models.py文件中导入models

 然后执行如下命令

生成迁移文件:python manage.py makemigrations

执行迁移:python manage.py migrate

然后查看数据库里的表

 2、使用orm删除、修改表结构

删除很简单,把models.py文件中对应的类注释掉或者删除,重新执行一下上面的命令就可以了

删除列就删除models.py文件中对应的类里面的属性删掉,重新执行命令就可以了

修改也一样,把类里面对应内容替换掉,重新执行命令

3、使用orm给表增加字段

 

 因为原有的表里字段可能有默认值,所以新加的字段选第一个的话就是让你手动添加一个默认值,第二个选项是退出让你在models.py对应的类中的字段赋予一个默认值,这样才能添加成功。

from django.db import models

# Create your models here.


class UserInfo(models.Model):
    name = models.CharField(max_length=30)
    password = models.CharField(max_length=50)
    age = models.IntegerField()
    date = models.IntegerField()
    sex = models.CharField(max_length=10, default='男')
    email = models.EmailField(max_length=30, default='1234567@qq.com')
#   用下面这种方式也可以,null=True允许数据库中为空,blank=True允许admin后台中为空
#   email = models.EmailField(null=True, blank=True)  

后面加上default默认值,就可以了

 

 4、增删改查

     Django的manage工具提供了shell命令,帮助我们直接在终端中执行测试Python语句。命令如下:python .\manage.py shell

下载一个ipython,IPthon是基于Python默认CPython解释器之上的一个增强的交互式解释器,提供了颜色显示、tab补全、历史机制、集成Python调试器等功能。

pip install ipython

 1)新增数据

使用create新增

 

 使用save()新增

 

 2)更新数据

save()方法:

 

 update()方法:

 3)删除数据

 删除筛选的数据:

 

 删除所有数据:

 

 如果删除的数据有外键字段,且模型中的on_delete参数被设置为CASCADE,则删除外键关联表中的对应数据。

5、QuerySet对象

QuerySet对象也被称为“查询集”,表示从数据库获取的数据对象集合,查询集有一个最重要的特性--惰性执行。

     惰性执行是指,在创建查询集后不会访问数据库,只在调用相关方法时才会访问数据库,这些方法包括遍历迭代、系列化等。

1)all()方法

该方法用于获取模型的QuerySet对象,即获取所有的数据

 2)filter()方法

该方法用来过滤数据,和sql语句中的where语句类似,获取满足条件的数据并返回一个QuerySet对象,如果没有获取数据,就返回空的QuerySet对象。

语法:模型类.objects.filter(字段=值)

 3)get()方法

该方法用于查询数据表记录,以模型对象的形式返回符合要求的一条数据

如果没有记录或者记录超过1条,会出现错误提示,因此需要做异常捕获处理,filter方法则不会出现错误提示 

4)exclude()方法

用于排除符合条件的数据,返回QuerySet对象,语法和filter方法一致,方法中还可以使用大于、小于、模糊匹配等操作符

操作符含义具体使用
__gt大于filter(age__gt=20)
__gte大于或等于filter(age__gte=20)
__it小于filter(age__it=20)
__ite小于或等于
__in在某列表内filter(age__in=[10,20]
__contains模糊匹配filter(name__contains='王'
__year日期字段的年份filter(createdate__year=2022)
__month日期字段的月份
__day日期字段的天数

5)values()方法

用于提取需要的字段,返回QuerySet对象,该对象包含的数据类型是由指定的字段和值形成的字典

 6)distinct()方法

用于去重,返回一个QuerySet对象

 

GD32F105RBT6 keil工程模板 创建GD32F105RBT6的keil初始基础工程,未来的所有外设驱动都是基于这个基础工程进行扩展。 阅读详情

相关推荐

智能车实战——极速越野组GPS与惯导融合定位导航全解析

本文深入解析了智能车极速越野组中GPS与惯导模块的融合定位导航技术。通过对比GPS的全局定位与惯导的高频姿态感知,详细阐述了如何利用MM32SPN27主控,将两者数据融合以实现精准、实时的车辆控制。内容涵盖硬件选型、软件数据处理、PID控制及系统调试等实战环节,为智能车开发者提供了一套完整的解决方案。

pz8901234的博客 1204

Django生成迁移文件报错django.db.migrations.exceptions.NodeNotFoundError: Migration orders.0001_initial......

【问题描述】 笔者在django中执行“python manage.py makemigrations”时报错“django.db.migrations.exceptions.NodeNotFoundError: Migration orders.0001_initial dependencies reference nonexistent parent node......”, 根据报错可知是因为要生成迁移文件的这个表A与另一个表B有依赖关系,笔者的表B是表A的外键,而笔者的表B已经删除了,所以无

a12123456的博客 3240

pytorch多层感知机实现假钞识别(完整项目构建)

目录1 项目构建2 超参数设置 config.py3 数据集预处理 preprocess.py4 数据集类构建 dataset_banknote.py5 模型构建 model.py6 训练trainer.py6.1 查看损失曲线7 在测试集上运行 inference.py 1 项目构建 构建项目文件夹Banknote,以及子文件夹与py文件。 名称 作用 data目录 存放原始数据与预处理后切分为训练集、验证机、测试集的数据 log目录 存放训练过程中保存的指标,如损失、精确度等

Demon_LMMan的博客 2027

Python3 + django 支持 MySQL

最近要做一个数据库的课程设计,嗯,没记错的话是三周的时间(17,18,19)下周还有一个很重要的考试,所以一定要赶快完成。

小坏蛋_千千 2571

别再死记硬背HJB方程了!用Python数值求解一个简单最优控制问题(附完整代码)

本文通过Python数值求解Hamilton-Jacobi-Bellman(HJB)方程,帮助读者从工程实践角度理解最优控制问题。教程涵盖从建立简单车辆控制模型到离散化HJB方程、实现值迭代算法及可视化结果的完整流程,适合具备Python基础的开发者学习。

weixin_42520796的博客 371

GBASE南大通用GBase 8s数据库-从零开始的手动安装与实例配置指南

本文详细介绍了GBASE南大通用GBase 8s数据库的手动安装与实例配置全过程,包括环境准备、用户创建、安装包准备、实例创建、环境变量配置等关键步骤。通过实战经验分享和常见问题解决方案,帮助用户快速掌握GBase 8s数据库的安装与配置技巧,确保数据库稳定运行。

weixin_29209825的博客 455

Django学习(一)

简单记录一下在windows下python3.8对django框架的学习 Django的官方文档有中文选择,非常详细 1.安装Django Django版本 Python版本 1.8 2.7、3.2、3.3、3.4、3.5 1.9、1.10 2.7、3.4、3.5 1.11 2.7、3.4、3.5、3.6、3.7(Django 1.11.17) 2.0 3.4、3.5、3.6、3.7 2.1 3.5、3.6、3.7 2.2 3.5、3.6、3.7、3.8(Django 2

zac的博客 250

探索如何利用CST和ADS进行DDR的SIPI联合仿真

本文系统介绍了CST和ADS两款工具进行DDR信号完整性/电源完整性(SI/PI)联合仿真的方法。CST采用工作室协同方式,通过PCB布局导入、材料设置、模型分配等步骤,重点分析了电源阻抗优化和信号波形质量。ADS则利用SIPro、PIPro等专用工具,突出系统级验证和自动化优化功能。两者各有优势:CST擅长3D结构精确建模,ADS更适于快速系统验证。文章建议可根据项目需求混合使用两种工具,并提供了模型简化、频带选择等实用技巧。通过对比分析,为工程师选择仿真工具提供了决策参考。

一只豌豆象的博客 1150

(初学)Django初学的总结

个人做的学习项目的环境是,python3.6+Django3.1,但是源项目是django2 总结的原因,有的时候,之前明白的点,过一段时间没接触就会忘记,再重头进行看,所以学习的过程中需要写总结和记录文档。 (1)下载安装mysql(用phpstudy代替),navicat,python3.6,pycharm,一开始,搭建环境,学习的在cmd里的虚拟环境的搭建,然后下载Django版本,在这之前,更换默认下载源,使得下载速度变快。其实没必要搭建虚拟环境了,因为pycharm自带可以选择创建虚拟环境。 (2

Utopia_love的博客 258

Android实现自动输入文本效果 (附完整源码)

Android实现自动输入文本效果 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 416

强化学习实战——OpenAI Gym环境配置+实战演示(win10)

遇到问题:无法安装pickle5原因是:python3.8与该包不兼容,必须降python3.7的版本。

LZL2020LZL的博客 4899

python3 django layui后台管理开源框架分享(码云)

如有好的建议可以评论后期添加维护 闲的时候 自己写的一个python3后台管理系统,后台用的是最流行的django框架,前台用的jquery,lauyui,开发工具:pycharm 先展示: 登录页面 首页模块添加了历史记录,时间显示等模块 首页 菜单管理左侧树可点击查询直属下级,可按名称搜索,可增删改查,删除有判断是否有子级条件,新增快捷选择父级菜单 菜单管理 ...

qq_41963917的博客 4341

【具身智能】感知 × 决策 × 执行:一个智能体的认知闭环怎么搭?

构建一个真正能在现实世界中运作的具身智能体,并不是简单地拼接“视觉 + 控制器 + 动作模块”就能完成的,它必须是一个**认知闭环结构**:能感知环境、理解状态、制定策略、执行动作,并从结果中学习反馈。 本讲将深入剖析具身智能的三大核心支柱:**感知系统、决策系统、执行系统**,并解析它们如何协同构建出一个“能观察、能思考、能行动”的智能体。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3266

Django框架(一)---- 总述

Django框架 目前在自学Django框架,环境Python-3.6,Django-1.11, MySQL-5.7 写博文是为了梳理整个框架结构,所以自己整理了一张表,后续会按照这张表结构进行记录解析,随着学习进展,会将额外的部件进行填充~ 目录: 1、Django框架(二)---- 常用命令 2、Django框架(三)---- 设置settings.py 3、D...

weixin_30624825的博客 104

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

基于django+sqlit实现的Django学堂

这是一个基于Django+SQLite实现的学堂系统项目,包含前台和后台管理功能。前台提供课程学习、学习路线、个人中心(学习进度、收藏、笔记、练习记录)等功能;后台支持课程、分类、用户、评论和学习路线管理。系统使用Python3.8和PyCharm开发,提供管理员账号(admin/admin123)用于测试。该项目适合编程初学者参考学习Django开发,包含了完整的源码和运行说明。

wanglindda的博客 194

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

项目E-shopping cart记录

Django第一个项目E-shopping cart记录目录Contents1.创建一个Django的Project2.设置Django项目1.settings2.写views以及使用urls编写路径,这个时候应该已经可以访问到页面了3.数据库3.coding中的Problems&Solutions网页出现Forbidden错误ORM框架的CRUD(增删改查)models的migratio...

Lonely programmer 320

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

基于Django构建的小学生英文单词背写检测考试系统

这是一个基于Django框架开发的小学生英文单词背写检测考试系统。项目主要功能包括:管理单词题库、考试分类、用户管理和答题记录查看等。系统采用Python3.10开发环境,使用SQLite3数据库,通过Django5.2实现后台管理功能。虽然该项目在实际工作中应用较少,但适合作为编程入门学习案例。系统提供了完整的后台管理界面(http://127.0.0.1:8000/admin/)和前台考试功能,包含单词表增删改查、用户管理、考试结果查看等模块,源码经过调试可正常运行,适合初学者参考学习Django开发。

wanglindda的博客 168

Django计算机毕业设计基于微信的基层党建信息系统(程序+lw)Python

该项目含有源码、文档、程序数据库、配套开发软件、软件安装教程项目运行环境配置:Pychram社区版py项目技术:django + python+ Vue 等等组成,B/S模式 +pychram管理等等。环境需要1.运行环境:最好是python3.7.7,我们在这个版本上开发的。其他版本理论上也可以。2.pycharm环境:pycharm都可以。推荐pycharm社区版;3.mysql环境:建议是用5.7版本均可。

巧灵计算机程序设计 226

Vue3初学之安装

Vue的核⼼库只关注视图层,不仅易于上手,还便于与第三方库或既有项⽬整合。另一方面,当与现代化的⼯具链以及各种⽀持类库结合使⽤时,Vue也完全能够为复杂的单页应用提供驱动。之前一直在做图像以及数据的开发,对前端的内容关注比较少。随着Vue越来越方便,先在写数据前,记录下Vue3的学习。Vue3+Django的前后开发框架,实现日常的平台管理,可视化界面等。期待能始终记录学习的过程,与大家一起共成长,不足之处请多多指正。傻瓜式安装,完成在要系统变量中可以查看,然后可以在command中,输入。

fmdpenny的博客 506

[附源码]计算机毕业设计Python+uniapp基于Android系统的学习记录与提醒应用kbj32(程序+源码+LW+远程部署)

Python3.7.7+Django+Mysql5.7+pip list+HBuilderX(Vscode也行)+uni+Vue+Pychram社区版。[附源码]计算机毕业设计Python+uniapp基于Android系统的学习记录与提醒应用kbj32(程序+源码+LW+远程部署)2. 前端:uni+css+javascript+jQuery+easyUI+highcharts。Django + uni小程序 +Python+Mysql 等等组成,B/S模式等等。或者 Mac OS;

qihangbiyesheji的博客 251

基于python的在线学习与推荐系统的设计与实现

基于python的在线学习与推荐系统的设计与实现》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等。用户端功能有:首页、学习资源、资源推荐、资源评价、公告信息、个人中心、后台管理。管理端功能有:科目管理、教师管理、学生管理、学习资源管理、学习记录管理、资源评价管理、系统管理等。教师端的功能有:个人中心、学习资源管理、学习记录管理、资源评价管理。python版本:python3.7及以上。更多功能请看运行截图!

java_python_php的博客 299

Django框架丨从零开始的Django入门学习

Django 是一个用于构建 Web 应用程序的高级 Python Web 框架,Django是一个高度模块化的框架,使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务。以下内容将从安装开始。

weixin_51355600的博客 2万+

Django学习记录

Django学习记录 Django应用及分布式路由 创建新的应用 创建方法:终端输入python manage.py startapp news,其中news是新的应用名 注册创建的APP,在项目的配置文件中(settings.py)找到INSTALLED_APPS列表,并在该列表中添加项目名,如下: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.conten

黄钢的博客 1万+

django的学习笔记和使用记录

django的学习笔记和使用记录django的学习笔记和使用记录我们为啥学django?简单搭建django的流程图详细学习教程1、python的安装这里不提,小编下一个博客会说这个,这里假设已经安装好python。直接开始安装django2、创建应用3、激活应用4、配置数据库5、定义模型6、在数据库中生成数据表7、管理数据表8、设计表结构9、测试数据操作10、启动服务器11、admin站点管理 django的学习笔记和使用记录 各位帅比好!小编在这里和大家交流一下django的伟大和学习记录!有不对的地方

齐较瘦的博客 4万+

学习Django

@Django 一个小白的自学之路 这是我在优快云上的第一篇文章,主要是为了记录自己自学一个框架的过程,整个过程都会一直更新,主要为了督促自己可以更好的去学习,如果我的学习过程可以帮到你,那我会很高兴。 学习中经常取得成功可能会导致更大的学习兴趣,并改善学生作为学习的自我概念。 为什么学? 这个篇文章的写作时间是2021年7月,也就是我毕业的时间,这个时间比较尴尬,很多公司招人都着了差不多了,所以招的人数和工资都会被压缩,每天都在看各种招聘信息,感觉自己缺少的东西真的太多了,因此想丰富一下自己的知识结构。

weixin_45718715的博客 1万+

Django框架記錄

Django框架記錄前言一、工具二、问题1.如何自定义自己的全局配置文件settings 前言 在这里记录了,我在使用django的过程中遇到的一些问题及如何解决 提示:以下是本篇文章正文内容,下面案例可供参考 一、工具 python 3.7 django 3.1.7 pycharm professional 2018.3 二、问题 1.如何自定义自己的全局配置文件settings 解决:可以像下面这样设置全局变量 windows: set DJANGO_SETTINGS_MODULE=mysite.

weixin_41986750的博客 3773
上一篇: Django框架学习记录(2)
下一篇: Django问题随堂记录
小小大大q
博客等级 码龄8年 89粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值