Python---Models 模型
#Models 模型
数据结构 + 算法 = 程序
---> URL ---> VIEW ---> Temple --->
DB:分类---关系
Teacher Student
姓名 年龄 地址 course
DB
MongoDB
Redis
-------------------------------------
# Models 模型
- ORM
-ObjectRelationMap: 把面向对象思想转换成关系数据库
* 类对应表格
* 类中的属性对用表中的字段
*在应用中的models.py文件中定义class
*所有需要使用ORM的class都必须是models.Model的子类
*class中的所有属性对应表格中的字段
*字段的类型都必须使用 models.xxx 不能使用python中的
*在django中,Models负责跟数据库交互
- django链接数据库
- 自带默认数据库Sqllite3
- 关系型数据库
- 轻量级
- 建议开发用sqlite3,部署用mysql之类数据库
- 切换数据库在settings中进行设置
# django 链接 mysql
DATABASES = [
'default' = {
'ENGINE' : 'django.db.backends.mysql',
'NAME':'数据库名',
‘PASSWORD’:'数据库密码',
‘HOST’:'127.0.0.1',
'PORT':'3306',
}
]
- 需要在项目文件下的__init__文件中导入pymysql包
# 在主项目文件下的__init__文件中导入pymysql包
···
# 在主项目的__init__文件中
import pymysql
pymysql.install_as_MySQLdb()
···
# models类的使用
- 定义和数据库表映射的类
- 在应用中的models.py文件中定义class
- 所有需要使用ORM的class都必须是models.Model的子类
- class中的所有属性对应表格中的字段
- 字段的类型都必须使用 modles.xxx 不能使用python中的类型
- 字段常用参数
1、max_length:规定数值的最大长度
2、blank:是否允许字段为空,默认不允许
3、null:在DB中控制是否保存为null,默认为false
4、default:默认值
5、unique:唯一
6、verbose_name:假名
- 数据库迁移
1、在命令行中,生成数据迁移的语句(生成sql语句)
```
python3 manage.py makemigrations
```
2、在命令行中,输入数据迁移的指令
```
python manage.py migrate
```
ps:如果迁移中出现没有变化或者报错,可以尝试强制迁移
···
# 强制迁移命令
python3 manage.py makemigrations 应用名
python3 manage.py migrate 应用名
```
3、对于默认数据库,为了避免出现混乱,如果数据库中没有数据,每次迁移前自带的sqlite3数据库删除
deactivate
activate
-
Python---Models 模型的更多相关文章
- python学习-- Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- 转 Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- Django models模型
Django models模型 一. 所谓Django models模型,是指的对数据库的抽象模型,models在英文中的意思是模型,模板的意思,在这里的意思是通过models,将数据库的借口抽象成p ...
- python django模型内部类meta详细解释
Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.下面对此作一总结: abstract 这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会相应 ...
- django的models模型类的常用数据类型和选项
django框架的models模块ORM框架,能够让我们通过编写类的方式,帮助我们自动生成数据库表. 生成的数据库表名为 应用模块名称_类名 数据库表中字段名 如果我们没有在参数中指定,就是我们写的类 ...
- 玩转python主题模型程序库gensim
gensim是python下一个极易上手的主题模型程序库(topic model),网址在:http://radimrehurek.com/gensim/index.html 安装过程较为繁琐,参考h ...
- models模型层
ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装 MVC或者MTV框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需 ...
- <Django> MVT三大块之Models(模型)
1.ORM(对象-关系-映射)---面向对象,不需要面向SQL语句 根据对象的类型生成表结构 将对象.列表的操作,转化成SQL语句 将SQL语句查询的结果转化成对象.列表 目的:实现数据模型与数据库的 ...
- python sklearn模型的保存
使用python的机器学习包sklearn的时候,如果训练集是固定的,我们往往想要将一次训练的模型结果保存起来,以便下一次使用,这样能够避免每次运行时都要重新训练模型时的麻烦. 在python里面,有 ...
- pd的django To do list教程-----(2)models模型的建立
1:在models.py中建表 from django.db import models class Tcontent(models.Model): content = models.CharFiel ...
随机推荐
- 1、Filebeat概述
Filebeat是一个轻量级的日志托运工具,用于转发和集中日志数据. Filebeat作为代理安装在服务器上,监控指定的日志文件或目录,收集日志事件,并将它们转发到Elasticsearch或Logs ...
- Python学习笔记九
Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接 ...
- Angular项目中核心模块core Module只加载一次的实现
核心模块CoreModule在整个系统中只加载一次,如何实现? 创建core Modele:ng g m core 既然CoreModule是类,就有构造函数,在构造函数中进行依赖注入. export ...
- react-native清除android项目缓存的命令
cd到android目录下执行: ./gradlew clean
- BZOJ4503 两个串 多项式 FFT
题目传送门 - BZOJ4503 题意概括 给定两个字符串S和T,回答T在S中出现了几次,在哪些位置出现.注意T中可能有?字符,可以匹配任何字符. 题解 首先,假装你已经知道了这是一道$FFT$题. ...
- Selenium切换窗口,警告框处理,调用JavaScript代码
多窗口切换 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作. WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切 ...
- 业务线--node中间层做一个透传的项目
1,node中间层总结 1,ejs引入vue的js,路由层(直接透传,自定义行的),比较浅层的一层 中间件的引入 ? ) { // 与rd约定,接口成功返回code===0,其余为失败 console ...
- C. Queen Codeforces Round #549 (Div. 2) (搜索)
---恢复内容开始--- You are given a rooted tree with vertices numerated from 11 to nn . A tree is a connect ...
- Mysql的学习笔记03
---恢复内容开始--- Mysql 的视图 1 view 在查询中,我们经常把查询结果当成临时表来看, view 是什么? View 可以看成一张虚拟的表,是表通过某种运算得到的有一个投影. 2 ...
- 揭开JS闭包的面纱
今天看了关于js闭包方面的文章,还是有些云里雾里,对于一个菜鸟来说,学习闭包确实有一定的难度,不说别的,能够在网上找到一篇优秀的是那样的不易. 当然之所以闭包难理解,个人觉得是基础知识掌握的不牢,因为 ...