Django中的Model模型

Model模型

模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。

通常,每个模型对应数据库中唯一的一张表。

  • 每个模型都是django.db.models.Model的一个Python 子类。
  • 模型的每个属性都表示为数据库中的一个字段。
  • Django 提供一套自动生成的用于数据库访问的API;
  • 这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳

模型与数据库的关系

模型(Model)负责业务对象和数据库的关系映射(ORM)

ORM是“对象-关系-映射”的简称,主要任务是:

  1. 根据对象的类型生成表结构
  2. 将对象、列表的操作,转换为sql语句
  3. 将sql查询到的结果转换为对象、列表

为什么要用模型?

Model是MVC框架中重要的一部分,主要负责程序中用于处理数据逻辑的部分。通常模型对象负责在数据库中存取数据

它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库

配置Mysql数据库

    • 在当前环境中安装mysql

    • sudo apt-get install mysql-serversudo apt install mysql-clientsudo apt install libmysqlclient-dev
      
    • 在当前python环境中安装 pymysql

      pip3 install pymysql
      
    • 在mysql中创建数据库

      create databases mydb default charset=utf8
      
    • 在Django项目中配置数据库
      修改settings.py文件中的DATABASE配置项

      DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'mydb',#选择数据库的名,请确认你的mysql中有这个库'USER': 'root','PASSWORD': '123456','HOST': 'localhost','PORT': '3306',}
      }
      
    • 告诉Django在接下来的mysql操作中使用pymysql

      打开mysite/__init__.py,写入以下代码导入pymysql:

      import pymysql
      pymysql.install_as_MySQLdb()
      
    • 开发流程

      1. 1. 在models.py中定义模型类,要求继承自models.Model

      from django.db import models# Create your models here.#用户信息模型
      class Users(models.Model):username = models.CharField(max_length=32)password = models.CharField(max_length=32)email = models.CharField(max_length=50)# class Meta:#    db_table = "polls_users"  # 指定表名
      

      2. 把应用加入settings.py文件的installed_app项
      编辑mysite/settings.py文件,并将项目应用文件名添加到该INSTALLED_APPS设置。

      INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','myweb',
      ]
      

      3.生成迁移文件

      python3 manage.py makemigrations
      

      4.执行迁移

      python3 manage.py migrate
      

      5.使用模型类进行crud操作

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455593.shtml

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    python有多少种模块_python如何查看有哪些模块

    Question: 如何查看正则表达式模块re及其相关函数的意义 1、终端命令行下 python >> import sys >> sys.modules ################################### 一长串信息中字段modules对应的模块即为包含的模块。 ################################### >> import r…

    浅谈面向对象的javascript几个特性

    javascript中的this和new javascript是一门很灵活的语言,尤其是function。他即可以以面向过程的方式来用,比如: function getName() {return 张三 } getName() 也可以以面向对象的方式来用,比如: function User() {th…

    【Netty】ChannelHandler和ChannelPipeline

    一、前言 前面学习了Netty的ByteBuf,接着学习ChannelHandler和ChannelPipeline。 二、ChannelHandler和ChannelPipeline 2.1 ChannelHandler 在ChannelPipeline中,ChannelHandler可以被链在一起处理用户逻辑。 1. Channel生命周期 Channel接口定义了一个…

    TS流头部的调整字段

    见 http://hi.baidu.com/xumingxsh/blog/item/7b178903f1fa98014afb512f.html http://hi.baidu.com/xumingxsh/blog/item/ba50dba320a10da3caefd02f.html

    electron 入坑记

    最近有个想法,想写个简单的应用程序.平时在 Mac上开发,最终有可能运行在 Windows 上.看了一下,Electron 比较简单,应该可以一试. 关于安装 我机器上是有 Node 环境的,按着官方教程 直接 npm install electron 结果运行到 npm install.js就不到了..下午上班有事,也没管他,结果一…

    自动驾驶安全驾驶规则_自动驾驶知识科普 自动驾驶汽车的七大核心技术

    自动驾驶技术的本质是用机器视角去模拟人类驾驶员的行为,其技术框架可以分为三个环节:感知层、决策层 和执行层,具体涉及传感器、计算平台、算法、高精度地图、OS、HMI等 多个技术模块。目前自动驾驶L3商业化技术已经成熟,L4级/L5…

    orcal数据操作

    1.将数据库ZHSY完全导出,用户名baseusernj密码baseusernj导出到D:\daochu.dmp中 exp baseusernj/baseusernjZHSY filed:\daochu.dmp fully exp baseuserhf/baseuserhfZJCPDB fileC:\105hf.dmp ownerbaseuserhf 2.导入那个数据库的用户就写那个,第一个是用户名&#…

    H264实时编码及NALU,RTP传输(ZZ)

    rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3984协议实现H264视频流媒体nalu单元 包起始 0x 00 00 00 01H.264 NAL格式及分析器http://hi.baidu.com/zsw%5Fdavy/b ... c409cc7cd92ace.htmlhttp://hi.b…

    学习具体计划书

    计划书10大行动&#xff1a;1. 学习的时候不玩手机学习的时候把手机放在抽屉里&#xff0c;静音2. 及时复习学完一个章节的知识及时复习觉得有做分享的价值就做分享录视频3. 不学习的时间要好好利用花时间做好吃的&#xff0c;把身体弄好多看看心理学的书&#xff0c;<接触青…

    初识python

    课程介绍: python语言:python语言是一种计算机程序设计语言,实现人机交互的语言 python的课程设计python基础 (python开发工程师)数据库和SQL开发 (数据分析工程师)网络爬虫 (网络爬虫工程师)高数和数据分析 (数据分析工程师)人工智能和机器学习 …

    photoshop最全快捷键列表

    一、工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取) 矩形、椭圆选框工具 【M】 移动工具 【V】 套索、多边形套索、磁性套索 【L】 魔棒工具 【W】 裁剪工具 【C】 切片工具、切片选择工具 【K】 喷枪工具 【J】 画笔工具、铅笔工具 【B】 像皮图章、图案图…

    python实例化对象做实参_如何在Python中记住类实例化?

    好的&#xff0c;这是真实的场景&#xff1a;我正在编写一个应用程序&#xff0c;我有一个类&#xff0c;它表示某种类型的文件&#xff08;在我的例子中&#xff0c;这是照片&#xff0c;但细节与问题无关&#xff09;。照片类的每个实例对于照片的文件名都应该是唯一的。 问题…

    bupt summer training for 16 #3 ——构造

    https://vjudge.net/contest/172464 后来补题发现这场做的可真他妈傻逼 A.签到傻逼题&#xff0c;自己分情况 1 #include <cstdio>2 #include <vector>3 #include <algorithm>4 5 using std::vector;6 using std::sort;7 8 typedef long long ll;9 10 int n…

    Python02期(北京)课程笔记索引

    day01 初始python关于使用notepad运行python程序注释和语句分类 day02 命名方式和关键字数据类型数据类型转换 day03 变量与数据类型运算和运算符进制转换 day04 循环结构 day05 函数概述 day06 nonlocal和global 关键字详解 day07 python核心,内建函数高阶函数字…

    python常用快捷键、写代码事半功倍_Pycharm常用快捷键总结及配置方法

    工欲善其事必先利其器&#xff0c;Python开发利器Pycharm常用快捷键以及配置如下&#xff0c;相信有了这些快捷键&#xff0c;你的开发会事半功倍 一 常用快捷键 编辑类&#xff1a; Ctrl D 复制选定的区域或行 Ctrl Y 删除选定的行 Ctrl Alt L 代码格式化 Ctrl Alt O 优…

    PHP中的魔术常量

    魔术常量 PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的&#xff0c;只有在加载了这些扩展库时才会出现&#xff0c;或者动态加载后&#xff0c;或者在编译时已经包括进去了。 有八个魔术常量它们的值随着它们在代码中的位置改变而改…

    Java中的继承性特性

    继承性是java中的第二特性之一。而继承性最为关键的地方为&#xff1a;代码重用性的问题&#xff0c;利用继承性可以从已有的类中继续派生出新的子类&#xff0c;也可以利用子类扩展出更多的操作功能。 继承性的实现代码为&#xff1a;class 子类 extends 父类{ } 有以下3点说…

    10大html5前端框架

    Bootstrap 首先说 Bootstrap&#xff0c;估计你也猜到会先说或者一定会有这个( 呵呵了 )&#xff0c;这是说明它的强大之处&#xff0c;拥有框架一壁江山的势气。自己刚入道的时候本着代码任何一个字母都得自己敲出来挡我者废的决心&#xff0c;来让自己成长。结果受到周围各 种…

    多媒体技术复习汇总 收藏

    多媒体技术复习汇总 收藏 1. 什么是媒体&#xff1a;媒体是信息表示和传输的载体。2. 媒体分类&#xff1a;感觉媒体&#xff0c;表示媒体&#xff0c;表现媒体&#xff0c;存储媒体&#xff0c;传输媒体3. 多媒体技术的定义和特点&#xff1a;多媒体技…