Model 模型
模型是你的数据的唯一的、权威的信息源。它包含你所存储的数据的必要字段和行为。
通常,每个模型对应数据库中唯一的一张表。

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

模型与数据库的关系

模型负责业务对象和数据库的关系映射
ORM是“对象-关系-映射”的简称,主要任务是:
1.根据对象的类型生成表结构
2. 将对象、列表的操作,转换为sql语句
3. 将sql查询到的结果转换为对象,类表

为什么要用模型?
Model是MVC框剪中重要的一部分,主要负责程序中用于处理数据逻辑的部分。通常模型对象负责在数据库中读取数据。
它实现了数据模型与数据库的解耦,即数据模型的数据不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。

配置Mysql数据库
1.在当前环境中安装mysql

  1. sudo apt-get install mysql-server
  2. sudo apt install mysql-client
  3. sudo apt install libmysqlclient-dev

2.在当前的python环境中安装pymysql

  1. pip3 install pymysql

3.在mysql中创建数据库

  1. creat database mydb default charset=utf8

4.在Django项目中配置数据库
修改settings.py文件中的DATABASE配置项

  1. DATABASES =[
  2. 'default':{
  3. 'ENGINE':'django.db.backends.mysql',
  4. 'NAME':'mydb', #选择数据库的名,确认你的mysql中有这个库
  5. 'USER':'root',
  6. 'PASSEORD':'',
  7. 'HOST':'localhost',
  8. 'PORT':'',
  9. }
  10. ]

5.告诉Django在接下来的mysql操作中使用pymysql
打开mysite/__init__.py ,写入以下代码导入pymydql:

  1. import pymysql
  2. pymysql.install_as_MySQLdb()

开发流程

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

  1. from django.db import models
  2.  
  3. #Create your models here.
  4.  
  5. #用户信息模型
  6. class Users(models.Model):
  7. username = models.CharField(max_length=32)
  8. password = models.CharField(max_length=32)
  9. email = models.CharField(max_length=50)
  10.  
  11. #class Meta:
  12. # db_table = 'polls_users' #指定表名

上面的指定表名的两行内容可以不写,django会自动生成一个表名。
例如:如果应用的名称为polls,则生成的表名wiepolls_users。

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

  1. INSTALLED_APPS = [
  2.  
  3. 'django.contrib.admin',
  4.  
  5. 'django.contrib.auth',
  6.  
  7. 'django.contrib.contenttypes',
  8.  
  9. 'django.contrib.sessions',
  10.  
  11. 'django.contrib.messages',
  12.  
  13. 'django.contrib.staticfiles',
  14.  
  15. 'myweb',
  16. ]

3.生成迁移文件

  1. python3 manage.py makemigtations

4.执行迁移

  1. python3 manage.py migrate

5.使用模型进行操作

Model 模型的更多相关文章

  1. Backbone源码解析(二):Model(模型)模块

    Model(模型)模块在bk框架中的作用主要是存储处理数据,它对外和对内都有很多操作数据的接口和方法.它与视图(Views)模块精密联系着,通过set函数改变数据结构从而改变视图界面的变化.下面我们来 ...

  2. MVC(Model(模型) View(视图) Controller(控制器))

    复习 1.      商品表 增删改查 index.php  add.php   view.php   edit.php   action.php 2.      MVC(Model(模型)  Vie ...

  3. django Model模型二及Model模型对数据库的操作

    在django模型中负责与数据库交互的为Model层,Model层提供了一个基于orm的交互框架 一:创建一个最基本的Model from __future__ import unicode_lite ...

  4. tp框架-----Model模型层

    1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数 ...

  5. keras系列︱Sequential与Model模型、keras基本结构功能(一)

    引自:http://blog.csdn.net/sinat_26917383/article/details/72857454 中文文档:http://keras-cn.readthedocs.io/ ...

  6. thinkphp5 model 模型

    新增更新都是save.saveAll  怎么识别他们 实例化模型后调用save方法表示新增: 查询数据后调用save方法表示更新: save方法传入更新条件后表示更新: isUpdate(true): ...

  7. Django Model模型的实战操作笔记

    Model模型的实战操作笔记 1. 创建数据库和表 进入MySQL数据库创建数据库:mytest 进入数据库创建数据表:mytest_users CREATE TABLE `mytest_users` ...

  8. TP框架---Model模型层---做模型对象

    TP框架----Model模型层---------------做模型对象 Model模型层是用来做什么的呢???? 主要是用来做操作数据库访问的. 也就说明TP框架自带了一种访问数据库的方式,使用的是 ...

  9. Thinkphp5.0 的Model模型

    Thinkphp5.0 的Model模型 新建user模型User.php: <?php namespace app\index\model; use think\Model; class Us ...

随机推荐

  1. HDU 2064 汉诺塔III (递推)

    题意:.. 析:dp[i] 表示把 i 个盘子搬到第 3 个柱子上最少步数,那么产生先把 i-1 个盘子搬到 第3个上,再把第 i 个搬到 第 2 个上,然后再把 i-1 个盘子, 从第3个柱子搬到第 ...

  2. Codeforces711C 【DP】

    题意: 有n个点,m种颜色,你要给n个点上没有颜色的点染色.每个点i对应染的颜色j有一个颜料消耗,p[i][j]是点i染成j颜色的花费,你必须保证有k段颜色的点,输出最少花费多少颜料. 还有一个就是本 ...

  3. bzoj 5499: [2019省队联测]春节十二响【堆】

    首先看两条链怎么合并,贪心可得是从大到小取max,多条链同理 所以dfs合并子树的大根堆即可,注意为了保证复杂度,合并的时候要合并到最长链上,证明见长链剖分 #include<iostream& ...

  4. bzoj 2806: [Ctsc2012]Cheat【广义SAM+二分+dp+单调队列】

    把模板串建一个广义SAM 然后在线查询,每次在SAM上预处理出一个a[i]表示i位置向前最多能匹配多长的模板串 二分答案L,dp判断,设f[i]为·~i有几个匹配,转移显然是f[i]=max{f[i- ...

  5. Codeforces731D 80-th Level Archeology

    考虑将两个单词变成有序,我们可以得到一个或者两个旋转次数的区间. 然后考虑将两组单词变成有序,比如[l,mid]和[mid+1,r],对于mid和mid+1这两个单词我们可以求出使他们有序的旋转次数的 ...

  6. IT兄弟连 JavaWeb教程 Servlet API

    Java Servlet是运行在带有支持Java Servlet规范的解释器的web服务器上的Java类. Servlet可以使用javax.servlet和javax.servlet.http包创建 ...

  7. JAVA多线程(二) 并发队列和阻塞队列

    github代码地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-service/ ...

  8. 【Python】Python3.4+Matplotlib详细安装教程

    网上找了很多教程,这个还不错. 传送门:https://blog.csdn.net/xqf1528399071/article/details/52233895

  9. SpringBoot整合Spring Data Solr

    此文不讲solr相关,只讲整合,内容清单如下 1. maven依赖坐标 2. application.properties配置 3. Java Config配置 1. maven坐标 <depe ...

  10. Centos 内存释放

    原因:最近发现服务器老师提示内存不足的警报,很多时候内存都占用百分之80以上,查看运行的服务似乎并没有占用很大的内存,top查看运行的服务,然后按shift+m排名第一的才百分之1.x,看了别人的博客 ...