2018-06-04-django-06模型基础

2018~2022年Python学习笔记 人生苦短,我用Python~ 阅读详情

Django模型基础

知识点:

  1. 数据库的配置
  2. 使用django中的模型
  3. 将模型映射到数据库
  4. 数据的增删改查基本操作
数据库的配置

1.在settings.py中配置DATABASES:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # 数据库引擎
        'NAME': 'mydb', #数据库名称
        'USER': 'admin', # 链接数据库的用户名
        'PASSWORD': 'Root110qwe', # 链接数据库的密码
        'HOST': '127.0.0.1', # mysql服务器的域名和ip地址
        'PORT': '3306', # mysql的一个端口号,默认是3306
    }
}

2.安装数据库连接器,在python3的虚拟环境中安装pymysql连接器。

pip install pymysql

3.在主目录下的的__init__.py文件添加下面两句:

import pymysql
pymysql.install_as_MySQLdb()
使用django中的模型
# blog/models.py
from django.db import models
# Create your models here.

class User(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=30)
    age = models.IntegerField()
    
    def __str__(self):
        return 'User<id=%s,name=%s,age=%s>'%(
            self.id,self.name,self.age)
  1. 模型必须都写在app下的models.py文件中。
  2. 模型如果需要映射到数据库,所在的app必须被安装.
  3. 一个数据表对应一个模型类,表中的字段,对应模型中的类属性.
  4. 映射模型到数据库之前,要提前把数据库给创建好.
将模型映射到数据库中

1.首先要创建一个映射文件,通过执行以下命令创建:

python manage.py makemigrations

2.将映射文件中的映射数据真正提交到数据库中,执行以下命令:

python manage.py migrate 
数据的增删改查
增加数据
# blog/views.py
from .models import User
def add_user(request):
    # 方法一:
    # tizi = User(name='tizi',age=18)
    # tizi.save()
    # 方法二:
    # xm = User()
    # xm.name = 'xiaoming'
    # xm.age = 19
    # xm.save()
    # 方法三:
    # User.objects.create(name='xiaohong',age=20,)
    # 方法四:
    User.objects.get_or_create(name='xiaohua',age=21)
    return HttpResponse('插入数据成功!!!')
查找数据
# blog/views.py
def search_user(request):
    # 查询所有记录对象
    # rs = User.objects.all()
    # 查询一个记录对象
    # rs = User.objects.get(id=1)
    # 获取满足条件的对象
    rs = User.objects.filter(name='xiaoming')
    print(rs)
    return HttpResponse('查询数据成功!!!')

更新数据

# blog/views.py
def update_user(request):
    # rs = User.objects.get(name='xiaoming')
    # rs.name = 'Xiaoming'
    # rs.save()
    # User.objects.filter(name='Xiaoming').update(name='XM')
    User.objects.all().update(country='changsha')
    return HttpResponse('更新数据成功!!!')

# 这里的country是在模型中新增的一个字段
删除数据
# blog/views.py
def delete_user(request):
    User.objects.get(id=1).delete()
    return HttpResponse('删除数据成功!!!')

拓展: 抽象与继承

​ 用处:将N多个可以抽象出来的model的属性 用抽象类的方式来优化我们的模型结构

#class Meta:
#        abstract=True
#注意这个,加了这个之后,表示该类是一个抽象类
#抽象类不会在mysql数据库中被映射生成对象表
#查看mysql中值生成了2张表,teach3_dog和teach3_cat
class Animal(models.Model):
    name = models.CharField(
        max_length=20,
        verbose_name="名字"
    )
    sex = models.CharField(
        max_length=4,
        default="雌性"
    )
    class Meta:
        abstract=True

class Dog(Animal):
    hobby = models.CharField(
        max_length=20,
        verbose_name="爱好"
    )

class Cat(Animal):
    eat = models.CharField(
        max_length=20,
        verbose_name="吃"
    )
2020年Python学习笔记目录 Python讲课笔记、Django讲课笔记、Python案例 阅读详情

相关推荐

探针卡技术演进:从金线微针到MEMS探针的Wafer Sort革命

本文探讨了探针卡技术从传统金线微针到MEMS探针的演进,及其对晶圆测试(Wafer Sort)的革命性影响。随着芯片焊垫间距进入45微米以下,MEMS技术凭借其超高精度、超长寿命和卓越的信号完整性,成为应对高密度、高速及3D IC测试挑战的关键,显著提升了测试效率与稳定性。

lstm7chronicler的博客 365

组件图-静态模型

UML 组件图(Component Diagram)又称为构件图,不用来描述系统的功能,但它描述了使用这些功能的组件。 所以从这一点来说,组件图用于可视化在一个系统中的物理组件。这些组件包括库,程序包,文件等。 组件图也被描述为一个静态的实施的系统视图,在一个特定的时刻,静态执行代表组织的组成部分。 一个单一的组件图不能代表整个系统,但图的集合可用来代表整个。 组件图的目的概括如下: 可视化系统...

qq_41629976的博客 479

JQ8900语音播报模块在RT-Thread系统下的驱动移植与测试详解

本文详细讲解了如何在RT-Thread嵌入式操作系统中,为JQ8900语音播报模块进行驱动移植与功能测试。内容涵盖从获取驱动代码、配置Kconfig工程、编译烧录到核心代码解析的完整流程,并提供了基于串口通信的上电测试与问题排查方法,帮助开发者快速掌握在RT-Thread系统下集成外部模块的核心技能。

weixin_35677363的博客 594

UML基础(二)--用例图

一、用例和用例图 1.用例的概念        用例模型的基本组成有用例、角色和系统。用例用于从用户角度描述系统的功能。用户不仅可以是操作员,还可以是其它系统或硬件设备。 2.使用用例的目的 明确系统应具备什么功能,这些功能是否满足客户的需求,与开发人员达成一致。 用例模型应用于系统开发的整个过程,为后阶段的系统设计和开发工...

qq_39722475的博客 1824

Windows下RISC-V开发环境搭建:xpack-riscv-none-elf-gcc安装配置全攻略

本文详细介绍了在Windows平台下搭建RISC-V开发环境的完整流程,重点讲解xpack-riscv-none-elf-gcc工具链的安装配置方法。从环境变量设置到VSCode集成开发环境搭建,涵盖汇编程序和C程序开发实践,为开发者提供一站式解决方案,助力快速掌握RISC-V架构开发技能。

weixin_26765287的博客 441

PostgreSQL+PostGIS空间数据入库实战:从矢量栅格到GeoServer发布全流程

本文详细介绍了将矢量与栅格空间数据导入PostgreSQL并利用PostGIS扩展进行管理的完整流程。内容涵盖环境搭建、使用shp2pgsql和raster2pgsql工具进行数据入库、基础空间查询验证,以及最终通过GeoServer发布为地图服务的实战步骤,为构建空间数据平台提供清晰指引。

weixin_29268267的博客 291

用例图-功能模型

绘制方法 绘制用例图时,我们需要明确角色和用例,用例和用例之间的关系。角色和用例是关联关系,也就是角色参与到这个用例中,关联关系是一条直线(有些UML绘图工具也使用带单向箭头的直线),用于连接角色和用例。 用例和用例之间主要是包含关系、扩展关系和依赖关系 包含关系 包含关系是指一个用例在执行过程中,会调用另外一个用例来完成相关任务,也就是在一个用例的内部包含了另外一个用例。例如,用户注册和用户登...

qq_41629976的博客 6633

通过理解 sk_buff 深入掌握 Linux 内核自定义协议族的开发实现

在。

数字人生 459

2018-06-21-django-12form表单

Django的form表单 django中的表单不是html中的那个表单.这个表单是用来验证数据的合法性的一个东西,也可以生成HTML代码. 使用表单 创建一个forms.py的文件,放在指定的app当中,然后在里面写表单. 表单是通过类实现的,继承自forms.Form,然后在里面定义要验证的字段. 在表单中,创建字段跟模型是一模一样的,但是没有null=True或者blank=True等这几...

github_38970218的博客 200

量化交易:如何在QMT中运行Python策略并在VSCode中高效调试?

哈喽,大家好,我是木头左!

木头大左的博客 3761

PCL DBSCAN密度聚类【2026最新版】

点云密度聚类的PCL代码实现,与matlab自带的密度聚类算法进行对比验证,结果一致。3万多个点能再2秒左右运行出结果,算法效率尚可。

点云侠的博客 5682

django怎么查询mysql数据库_django查询mysql数据库

Django学习笔记----数据库操作实例上上篇>Django学习笔记----环境搭建基于Windows上一篇>Django学习笔记----快速入门修改settings.py配置在环境搭建篇, 我们已经安装了mysql-client包安装好后, 在settings.py中将代码做如下替换DATABASES = {...文章fesoncn2017-12-28966浏览量Django实践笔...

weixin_30325929的博客 1280

C++如何实时监测另一个进程是否已经退出?(附源码)

调用WaitForSingleObject实时监测目标进程是否已经退出

dvlinker的技术专栏 8276

Django迁移

Django迁移 学习目标: 如何在不编写任何SQL语句的情况下创建数据库表 更改model如何自动修改数据库 如何还原对数据库所做的更改 迁移能解决的问题 如果你不了解Django或者WEB开发,肯定是不熟悉数据库迁移的概念的。 在学习它之前,首先我们需要明确它是干什么的,Django使用它旨在与关系型数据库结合使用,将数据存储在PostgreSQL,Mysql或者SQLite等关系型数据库...

yangsen99的博客 247

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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...

django orm关联查询_django orm 多表查询

#直接导入django可以查看并用于django包相关模块,但无法使用django创建的项目中的包importdjangoimportosos.environ.setdefault("DJANGO_SETTINGS_MODULE", "duobiaochaxun.settings")django.setup()from app.models importBook, AuthorDetail, Au...

weixin_39604557的博客 157

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

pythondjangoddos_python django简单网站

Windows上python开发--2安装django框架Windows上python开发--2安装django框架分类:服务器后台开发2014-05-17 21:222310人阅读评论(2)收藏举报python django上一篇文章中讲了如何在windows上安装和开发python。这篇文章需要在上一篇的基数上进行。首先确保你的w...文章thinkyoung2015-11-0267...

weixin_42511024的博客 199

OV9734 DATASHEET,完整规格书

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

django2.0支持python版本_Django 2.0不再支持Python2.7 据官方未来开发计划说明得知

Django(发音:[`dʒæŋɡəʊ])是一种用python语言编写的,可快速开发、实用雅洁的自由开源高级web应用框架(open source web framework)。Django可使你专注于编写应用程序,而无需重新编写应用程序所需的每一个车轮。Django采用MVC软件设计模式,即:模型M、视图V、控制器C;按BSD许可协议发布。但Django更关注模型(Model)、模板(Templ...

weixin_39583521的博客 321

python黑马视频全套-2018年6月北京黑马python24期全套视频课程

资源内容:2018年6月北京黑马python24期全套视频课程|____30-深度学习 |____07-验证码识别.zip |____06-CNN卷积网络识别MNIST数据.zip |____05-卷积神经网络.zip |____04-神经网络和MNIST手写数字识别.zip |____03-TensorFl...

weixin_39683526的博客 814

《千锋Django培训》网课笔记(从18到)

 十八.         验证阶段: 首先,我们先通过python3 manage.py shell进入shell模式,并测试一下,当我们自定义模型管理器前,objects的情况 &gt;&gt;&gt; from myApp.models import Grades, Students &gt;&gt;&gt; from django.utils import timezon...

garrulousabyss的博客 1884

python脚本迁移数据库_Django 数据库迁移脚本

django修改模型后更新数据库当django改变模型过后,需要重新更新数据库,更新方法如下比如app的名字是rangopython manage.py makemigrations rango(创建迁移脚本)然后运行python manage.py migrate ...文章科技小能手2017-11-121037浏览量Django 博客开发教程 15 - 使用...

weixin_39690401的博客 210

基于django+vue基于Script的中国非物质文化遗产网站【开题报告+程序+论文】-计算机毕设

研究背景 在全球化与现代化的浪潮中,非物质文化遗产(以下简称“非遗”)作为民族文化的瑰宝,面临着传承与保护的严峻挑战。随着信息技术的飞速发展,互联网已成为文化传播的重要平台。然而,当前针对中国非遗的在线展示与传播平台普遍存在内容零散、分类不清、互动性不足等问题,难以满足公众日益增长的文化需求与知识探索欲望。因此,构建一个集展示、教育、交流于一体的中国非物质文化遗产网站,不仅是对非遗保护与传承方式的创新探索,也是推动中华优秀传统文化走向世界的重要途径。 研究意义 本研究旨在通过构建中国非物质文化遗产网站,实

峰映学长-毕设项目 1691

基于django+vue财务报销管理系统【开题报告+程序+论文】-计算机毕设

研究背景 随着企业规模的日益扩大与业务复杂度的提升,传统的财务报销管理方式逐渐暴露出效率低下、流程繁琐、易出错且难以追溯等问题。传统报销方式往往依赖于纸质单据,不仅增加了存储与查找的难度,还延长了报销周期,影响了员工满意度及企业的运营效率。此外,缺乏有效的监控与审核机制,使得报销费用存在被滥用或误报的风险。因此,开发一套高效、便捷、透明且智能化的财务报销管理系统,成为现代企业管理中亟待解决的问题。 研究意义 财务报销管理系统的研发,对于提升企业财务管理的精细化水平、增强内部控制能力具有重要意义。该系统能够

峰映学长-毕设项目 1058

零基础学python图文版-杭州零基础学python图文版

杭州零基础学python图文版来源:教育联展网 编辑:佚名 发布时间:2018-09-19学习python有什么用?如果你想学Python,或者你刚开始学习Python,那么你可能会问:"我能用Python做什么?”这个问题不好回答,因为Python有很多用途。Web开发Django和Flask等基于Python的Web框架**近在Web开发中非常流行。这些Web框架可以帮助...

weixin_37988176的博客 227
上一篇: 2018-06-01-django-05静态文件加载及自定义过滤器标签
下一篇: 2018-06-07-django-08模型表关系
mhh4399
博客等级 码龄9年 4粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值