【Django】【三】模型
【基本数据访问】
1. models.py写模型
2. 数据库迁移
guest> python manage.py makemigrations sign
guest> python manage.py migrate
3. admin.py + admin后台操作
4. 基本数据访问
guest> python manage.py shell
(1)进入>>>模式
>>> from sign.models import Event,Guest
>>> Event.objects.all()
<QuerySet [<Event:小米5发布会>]>
>>> Guest.objects.all()
<QuerySet [<Guest:jack>]>
(2)插入数据:
>>> from datetime import datetime
>>> from sign.models import Event
>>> from sign.models import Guest
>>> Event.objects.create(id=3,name='红米MAX发布会',limit=2000,status=True,address='北京会展中心',start_time=datetime(2017,9,27,17,0,0))
<Event:红米MAX发布会>
>>> Guest.objects.create(realname='andy',phone=13610111001,email='andy@mail.com',sign=False,event_id=3)
<Guest:andy>
>>> e1 = Event.objects.get(name='红米MAX发布会')
>>> e1
<Event:红米MAX发布会>
>>> e1.address
'北京会展中心'
>>> e1.start_time
datetime.datetime(2017,9,27,17,0,0)
>>> Event.objects.get(name='红米MAX发布会').status
True
>>> Event.objects.get(name='啊轻松扫').address
sign.models.DoesNotExist: Event matching query does not exist.
过滤
>>> e2 = Event.objects.filter(name__contains='发布会')
>>> e2
<QuerySet [<Event:小米5发布会>,<Event:红米MAX发布会>]>
>>> g1 = Guest.objects.get(phone='13611001101')
>>> g1.event
<Event:红米MAX发布会>
>>> g1.event.address
'北京会展中心'
(3)删除数据
>>> g2 = Guest.objects.get(phone='13611001101')
>>> g2.delete()
(1,{'sign.Guest':1})
>>> Guest.objects.get(phone='13611001101').delete()
(1,{'sign.Guest':1})
(4)更新数据
方式1:
>>> g3 = Guest.objects.get(phone='13611001101')
>>> g3.realname = 'andy2'
>>> g3.save()
方式2:
>>> Guest.objects.select_for_update().filter(phone='13611001101').update(realname='andy3')
1
查看数据库,已更新
【MySQL】--由于之前用的是sqlite,所以现在要重新来过
1 数据库客户端删除数据库:
mysql> drop database 数据库名字;
【备注】如果报错:mysql errro 1010 (HY000) 参考:https://jingyan.baidu.com/article/d71306352af34613fdf475eb.html
2 清理项目中关于数据库的缓存 :删掉migrations和 __pycache__ folder
3 数据库客户端创建数据库,编码格式选择"utf-8"
mysql> CREATE DATABASE guest CHARACTER SET utf8;
4 重新执行:
python3 manage.py makemigrations app名字
python3 manage.py migrate
5. Admin 后台超级管理员账号(admin/admin123456) 也需要重新创建
cmd.exe
D:\pydj\guest>python3 manage.py createsuperuser
Username (leave blank to use 'fnngj'): admin #输入登录用户名
Email address:admin@mail.com
Password:#数据登录密码
Password(again):#再次输入密码
Superuser created successfully.
6. MySQL客户端安装
win7 我用 HeidiSQL_9.4.0.5125
【Django】【三】模型的更多相关文章
- Django中模型(三)
Django中模型(三) 四.模型成员 1.类属性 objects:是Manager类的一个对象,作用是与数据库进行交互. 定义模型类时,没有定义管理器,则默认创建名为objects的管理器. 2.自 ...
- 64、django之模型层(model)--建表、查询、删除基础
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...
- 初识DJango——MTV模型
一.Django—MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻 ...
- 【Django】模型层说明
[Django模型层] 之前大概介绍Django的文章居然写了两篇..这篇是重点关注了Django的模型层来进行学习. ■ 模型定义 众所周知,Django中的模型定义就是定义一个类,其基本结构是这样 ...
- Django笔记--模型
ORM是"对象-关系-映射"的简称,在Django当中,ORM就是模型类的管理器对象.操作顺序是先定义模型类,再定义模型类管理器,然后在模型类中实例化一个模型类管理器的对象,作为模 ...
- django之模型层(model)--建表、查询、删除基础
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...
- python 全栈开发,Day70(模板自定义标签和过滤器,模板继承 (extend),Django的模型层-ORM简介)
昨日内容回顾 视图函数: request对象 request.path 请求路径 request.GET GET请求数据 QueryDict {} request.POST POST请求数据 Quer ...
- django ORM模型表的一对多、多对多关系、万能双下划线查询
一.外键使用 在 MySQL 中,如果使用InnoDB引擎,则支持外键约束.(另一种常用的MyIsam引擎不支持外键) 定义外键的语法为fieldname=models.ForeignKey(to_c ...
- [Django学习]模型
ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...
- django之模型
ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...
随机推荐
- tomcat tomcat-user.xml被还原
问题:把tomcat——conf中的tomcat-user.xml中的角色.密码修改之后,在eclipse重启Tomcat,设置的Tomcat用户名和密码失效. 解决问题:同时修改tomcat——co ...
- Codeforce 791A - Bear and Big Brother
Bear Limak wants to become the largest of bears, or at least to become larger than his brother Bob. ...
- [转载]dbms_lob用法小结
http://blog.sina.com.cn/s/blog_713978a50100prkt.html CLOB里存的是2进制 判定长度 DBMS_LOB.GETLENGTH(col1)获取文本 ...
- ORM for Net主流框架汇总
ORM框架:Object/Relation Mapping(对象/关系 映射)的缩写,易于理解的模型化数据的方法.简单的说就是把数据库的关系型数据类型转换为用对象型程序控制的框架类型. 框架优缺点分析 ...
- jdbc --例子7
package cn.kitty.o1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLE ...
- MyEclipse配置默认自带的Java代码格式化
1.配置注释一大段代码块后,格式化代码,已经注释的代码仍然保持原样 (1)首先,Window -> Prefrences -> Java -> Code Style -> Fo ...
- 安装ubuntu18.04.1
下载ubuntu:https://www.ubuntu.com/download/desktop 在虚拟机创建好ubuntu18.04.1后无法启动(选择的是linux,ubuntu64位),提示:此 ...
- 【gulp-sass】本地搭建sass开发环境
首先去官网下载一下nodejs. 然后安装gulp: 选择一个目录执行命令行:npm init,一直回车生成package.json文件 再执行命令:npm install gulp --save-d ...
- mysql 5.7多源复制(用于生产库多主库合并到一个查询从库)
目前我们使用的是主从+分库分表的系统架构,主库有N个分库,从库为多个slave做负载均衡,所以数据库端的架构是下面这样的: 因为差不多有一年半没有专门搞技术为主了,顺带回顾下. 这就涉及到多个主库数据 ...
- Idea 破解教程 (2018.11-29最新版)
一.下载安装idea,这里不做赘述.官网-https://www.jetbrains.com/idea/ 二.安装完idea后,需要激活使用.这里需要先下载个工具包 ,下载网址http://idea. ...