MVT 之 M——模型
1.ORM框架
在数据库的使用过程中,我们可以使用SQL语句操作数据库,但是可能会存在SQL语句较多,会影响到开发的速度。使用ORM框架可以让我们通过对对象和类的操作实现对数据库的操作,而不使用SQL语句。本质上,ORM框架会帮我们自动的转换为SQL 语句,然后对数据库进行操作。
Django框架内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。
使用django进行数据库开发的步骤如下:
1.在models.py中定义模型类
2.迁移
3.通过类和对象完成数据增删改查操作
2.创建数据库表
1.选择需要使用的数据库
Django默认使用sqlite3,可以更改为使用MySQL
具体步骤为:
对<DjangoProject>/Settings.py文件下的DATABASES = {}进行修改,修改为以下内容
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 修改为MySQL'NAME':'djtest', # 数据库名字'USER':'root', # 用户名'PASSWORD':'*********', # 用户的MySQL登录密码'HOST':'localhost', # 数据库所在主机的IP地址'PORT':'3306', # 端口号,一般默认为3306}
}
2.新建一个应用
Django中每一个应用实现一个功能,在控制台输入以下语句
python manage.py startapp firstApp
语句规则为:python manage.py startapp <appname>
同时,应该将创建的应用注册到Django中,
在<DjangoProject>/settings.py文件下的INSTALLED_APPS = [ ] 语句末尾加上刚刚创建的<AppName>
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','firstApp',
]
3.创建数据表,即模型类
在 <appname> /models.py 文件下编写模型类
以下为示例代码:
from django.db import models# Create your models here.'''
定义一个模型类,Book类
'''
class Book(models.Model):name = models.CharField(max_length=5)writer = models.CharField(max_length=15)
定义属性的语法为:
属性名 = models.字段类型(选项)
具体的关于模型类的定义会在以下博客进行说明
字段类型及选型详解
由于修改了使用的数据库为MySQL,所以要在当前环境中导入第三方库pymysql
pip install pymysql
安装成功之后,在<DjangoProject>/init.py文件中加上如下代码:
import pymysql
pymysql.install_as_MySQLdb()
4.生成迁移文件
在控制台输入以下代码:
python manage.py makemigrations
python manage.py migrate
5.通过MySQL控制台查看生成的内容
show databases
use djtest
show tables
可以看到,djtest数据库中存在很多个表,其中<AppName>_<ClassName>,即为刚才创建的表。可以通过
desc firstapp_book
查看表结构
可以看到,Django为我们自动生成了一列,id,在创建表的时候id就会作为对应表的主键列,并且主键列自动增长
6.在刚刚创建的数据表操作数据
在控制台输入以下指令进入shell命令行
python manage.py shell
给数据表传入一个值
from firstApp.models import Book
Book.objects.all() # 查询数据表的全部数据,因为当前未导入数据因此返回值为空列表
b = Book() # 创建实例对象
# 设置对象的值
b.name = "射雕英雄传"
b.writer = "金庸"
# 保存数据
b.save()
获取指定的某一个数据
# 获取数据表中的数据
book = Book.objects.get(id = "1")
book.name
book.writer
查询结果
修改某一条数据(以上一条查询的数据为例)
book.name = "连城诀" # 修改书名为连城诀
book.save() # 保存修改
删除某一条数据
book.delete()
MVT 之 M——模型相关推荐
- Django基础概念和MVT架构(一)
1.1Django简介 Django简介 Django : 发音为 [ `dʒæŋɡəʊ ]. 名称来源于比利时爵士音乐家 Django Reinhardt Python 语言写的开源web开发框架, ...
- 【Django 学习笔记】1、基础概念和MVT架构
0x00 Django 简介 Django是Python写的开源Web开发框架,主要目的是做一个简便.快速的开发数据库驱动的网站 Django遵循MVC设计模式,在Django中有个专有名词,叫做MV ...
- 框架 路由地址_Django框架的使用
Django框架的使用 一,创建基本项目 创建项目 # web是项目名称或者称为项目目录django-admin startproject web# 会在执行命令的当前目录中 创建 web项目目录w ...
- [Django青铜修炼手册] 初识Django
Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M,视图V,模板T.在学 ...
- Django 学习笔记第一课
Django web 框架介绍: MVC框架的核心思想 核心思想:解耦: 好处:可扩展性,向后兼容,低耦合,高内聚: 普通web结构框架MVC框架 M:model 主要用于数据库层次的封装: V:vi ...
- Django笔记01-基础:一个完美主义的web框架
浅谈Web框架 一,什么是框架? 软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品, 框架的功能类似于基础设施,提供并实现最为基础的软件架构和体系 通常情况下我们依据框架来实现更为复杂 ...
- 浅谈web开发以及django的安装和入门
浅谈web开发 1.B/S和C/S结构 B/S:浏览器与服务器进行的交互模式(不需要官方下载的,一夫多妻制) C/S:客户机与服务器进项的交互模式(必须官方下载的,一夫一妻制 2.MVC和MVT MV ...
- Django的简单介绍及虚拟环境的搭建、创建项目,数据库(Windows版超级详细)--Python web应用程序开发(Python实战)
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录 Djangg ...
- pythondjangoddos_django带服务器
被解放的姜戈08 远走高飞 作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. 之前在单机上实现了一个Django服务器(被解放的姜戈07 马不停蹄) ...
最新文章
- AngularJs学习笔记--Forms
- ElasticSearch小操之Marvel,Sense
- python 调用 tensorflow,C++与python 相互调用-- c++调用tensorflow教程
- Spring Bean的装配(非XML文件方式)
- 前后端分离WebStorm自动部署到tomcat服务器
- 数据库---练习题(45道)
- graphpad数据小数点_GraphPad Prism 统计指南 | 关于异常值(Outlier),你真的了解吗?...
- TX2系统备份与恢复
- 酷派android升级失败,酷派大神X7刷机失败变砖开不了机 救砖教程
- duet设置_Duet Display 使用体验 - iPad 变身扩展屏幕
- this的五种绑定方式
- freeswitch mrcp 源码分析--数据接收(上)
- 一种即时通信数据传输方法、客户端、服务器及系统
- MySQL权限授权认证详解
- Ae:形状图层的内容添加
- 6步教你封杀恶意登录服务器的ip
- openstack之Horizon
- 铅酸电池充放电保护电路图
- 串口数据实时处理:定时器+串口 判断串口数据接收完成
- c语言奇数放左边偶数放右边,放在
热门文章
- Windows 7 插入耳机后没声音,拔下后扬声器有声音
- Parallels Desktop 16 网络初始化失败
- 分布式事务解决方案汇总:2PC、3PC、消息中间件、TCC、状态机+重试+幂等(转)
- hbuilder发生了错误请参阅日志文件1545838571032
- Artifact “xxx - xxxx“:war exploded:部署工件时出错。请参阅服务器日志了解详细信息
- 【C++学习笔记】函数基础和参数传递
- msp430流水灯c语言程序,基于MSP-EXP430F5529开发板流水灯程序
- 用Android手机远程桌面连接登陆Windows10(用微软账号登陆),Microsoft账户登陆的计算机远程桌面连接问题
- 苹果手机如何关闭自动续费_手机APP会员自动续费怎么办?教你一招快速关闭!...
- APISpace 人像比对API