Model 模型
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 模型的更多相关文章
- Backbone源码解析(二):Model(模型)模块
Model(模型)模块在bk框架中的作用主要是存储处理数据,它对外和对内都有很多操作数据的接口和方法.它与视图(Views)模块精密联系着,通过set函数改变数据结构从而改变视图界面的变化.下面我们来 ...
- MVC(Model(模型) View(视图) Controller(控制器))
复习 1. 商品表 增删改查 index.php add.php view.php edit.php action.php 2. MVC(Model(模型) Vie ...
- django Model模型二及Model模型对数据库的操作
在django模型中负责与数据库交互的为Model层,Model层提供了一个基于orm的交互框架 一:创建一个最基本的Model from __future__ import unicode_lite ...
- tp框架-----Model模型层
1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数 ...
- keras系列︱Sequential与Model模型、keras基本结构功能(一)
引自:http://blog.csdn.net/sinat_26917383/article/details/72857454 中文文档:http://keras-cn.readthedocs.io/ ...
- thinkphp5 model 模型
新增更新都是save.saveAll 怎么识别他们 实例化模型后调用save方法表示新增: 查询数据后调用save方法表示更新: save方法传入更新条件后表示更新: isUpdate(true): ...
- Django Model模型的实战操作笔记
Model模型的实战操作笔记 1. 创建数据库和表 进入MySQL数据库创建数据库:mytest 进入数据库创建数据表:mytest_users CREATE TABLE `mytest_users` ...
- TP框架---Model模型层---做模型对象
TP框架----Model模型层---------------做模型对象 Model模型层是用来做什么的呢???? 主要是用来做操作数据库访问的. 也就说明TP框架自带了一种访问数据库的方式,使用的是 ...
- Thinkphp5.0 的Model模型
Thinkphp5.0 的Model模型 新建user模型User.php: <?php namespace app\index\model; use think\Model; class Us ...
随机推荐
- Code-zabbix:zabbix-3.4-快速入门
ylbtech-Code-zabbix:zabbix-3.4-快速入门 1.返回顶部 1. 1 登陆和配置用户 登陆Zabbix,以及在Zabbix内建立一个系统用户. 用户名:Admin 或者 ad ...
- 转载:SharePoint:扩展DVWP - 第1部分:布局增强 – 在默认值模板和编辑模板中重新排列栏
SharePoint:扩展DVWP - 第1部分:布局增强 – 在默认值模板和编辑模板中重新排列栏 当我们在数据视图中启用编辑,删除模式的链接时,SPD总是将链接添加到左边. 而我本来希望添加到右侧. ...
- 关于HibernateDaoSupport中的getHibernateTemplate().execute及executeFind方法
转自:https://blog.csdn.net/angus_17/article/details/8501668 1. 这两个方法都是为了Spring在接管Hibernate之后,可以对Hibern ...
- 字符指针unsigned char *ch_p
指向类型为unsigned char的指针变量叫字符指针. 例如: unsigned char ch = 'a'; unsigned char *ch_p = &ch;那么指针变量ch_p就是 ...
- mysqlerror2003错误原因以及解决方案
出现mysql #2003错误有一下几种原因 一.mysql数据库没有启动 这种情况也正是我遇到的,到windows服务选项里查看发现没有mysql数据库服务这个选项,记得刚开始安装mysql的时候是 ...
- 由mysql分区想到的分表分库的方案
在分区分库分表前一定要了解分区分库分表的动机. 对实时性要求比较高的场景,使用数据库的分区分表分库. 对实时性要求不高的场景,可以考虑使用索引库(es/solr)或者大数据hadoop平台来解决(如数 ...
- 786. K-th Smallest Prime Fraction
A sorted list A contains 1, plus some number of primes. Then, for every p < q in the list, we co ...
- lightoj 1033【区间DP/LCS】
题意: 给你一个长度<=100的字符串. 然后你可以在任何位置插入字符,问最少插入几个构成回文. 思路: 1.长度-LCS: 2.区间DP; 我保证小的区间是一个回文,然后枚举区间,构成大区间, ...
- hdoj5698
果然以前不想搞的东西,今天他妈全来了,我要爆炸,除了说操....真是欲哭无泪啊..... //这道题目卡在逆元了.... //利用逆元计算1/(n!(m-n)!) //对于正整数a,m如果有ax≡1( ...
- MongoDb 查看用户名列表 , 修改用户密码
修改用户密码: db.addUser("java","java"); 查看一下所有的用户 , 查看当前Db的用户名 db.system.users.find ...