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

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

模型与数据库的关系

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

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

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

 sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev

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

 pip3 install pymysql

3.在mysql中创建数据库

 creat database mydb default charset=utf8

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

 DATABASES =[
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'mydb', #选择数据库的名,确认你的mysql中有这个库
'USER':'root',
'PASSEORD':'',
'HOST':'localhost',
'PORT':'',
}
]

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

 import pymysql
pymysql.install_as_MySQLdb()

开发流程

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' #指定表名

上面的指定表名的两行内容可以不写,django会自动生成一个表名。
例如:如果应用的名称为polls,则生成的表名wiepolls_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 makemigtations

4.执行迁移

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. Java AWT组件开发和Swing界面编程

    一.AWT组件开发 1.AWT AWT是抽象窗口工具箱的缩写,它为编写图形用户界面提供了用户接口,通过这个接口就可以继承很多方法,省去了很多工作.AWT还能使应用程序更好地同用户进行交互. AWT中的 ...

  2. bzoj4555

    ntt+cdq分治 原来zwh出的cf是斯特林 第二类斯特林数的定义是S(i,j)表示将i个物品分到j个无序集合的方案数,那么这道题中S(i,j)*j!*2^j是指将i个物品分到j个有序集合中并且每个 ...

  3. bzoj1996

    区间dp 其实我们发现对于一段区间我们是这样构造的,每次我们会向两端放数,这样就有四种情况,且必须满足题意,初值是dp[i][i][0]=1,因为第一个人只有一种放法,不分左右.其实看见dp[i][i ...

  4. Javaweb中利用kaptcha生成验证码

    引入kaptcha-2.3-jdk15.jar包 在web.xml中进行配置 <servlet> <servlet-name>Kaptcha</servlet-name& ...

  5. iOS 管理View

    创建: 2018/04/26 完成: 2018/05/03 更新: 2018/05/04 增加UIStackView 更新: 2018/09/18 补充SFSafariViewController需要 ...

  6. 洛谷 - P2805 - 植物大战僵尸 - 最大流 - 最大权闭合子图

    https://www.luogu.org/problemnew/show/P2805 最大权闭合子图的特点是,假如你要选一个结点,则要先选中它的所有子节点.正权连S负权连T,容量为绝对值,原图有向边 ...

  7. C++笔试题库之编程、问答题 300~305道

    301. 以下代码有什么问题? cout << (true?1:”1″) << endl; 答:三元表达式“?:”问号后面的两个操作数必须为同一类型. 302.以下代码能够编译 ...

  8. hihoCoder 1032

    最长回文子串的O(1)算法Manacher算法 #include <iostream> #include <stdio.h> #include <string.h> ...

  9. 第五篇 .NET高级技术之CTS、CLS、CLR

    CTS.CLS.CLR 1. .Net平台下不只有C#语言,还有VB.Net.F#等语言.IL是程序最终编译的可以执行的二进制代码(托管代码),不同的语言最终都编译成标准的IL(中间语言,MSIL): ...

  10. iOS UITableView设置tableHeaderView时发生约束错误 UIView-Encapsulated-Layout-Height UIView-Encapsulated-Layout-Width

    在将UITableView的tableHeaderView设置为我自己创建的View的时候, 当我为这个自定义View添加约束之后启动调试, 然后符号断点UIViewAlertForUnsatisfi ...