【基本数据访问】

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】【三】模型的更多相关文章

  1. Django中模型(三)

    Django中模型(三) 四.模型成员 1.类属性 objects:是Manager类的一个对象,作用是与数据库进行交互. 定义模型类时,没有定义管理器,则默认创建名为objects的管理器. 2.自 ...

  2. 64、django之模型层(model)--建表、查询、删除基础

    要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...

  3. 初识DJango——MTV模型

    一.Django—MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻 ...

  4. 【Django】模型层说明

    [Django模型层] 之前大概介绍Django的文章居然写了两篇..这篇是重点关注了Django的模型层来进行学习. ■ 模型定义 众所周知,Django中的模型定义就是定义一个类,其基本结构是这样 ...

  5. Django笔记--模型

    ORM是"对象-关系-映射"的简称,在Django当中,ORM就是模型类的管理器对象.操作顺序是先定义模型类,再定义模型类管理器,然后在模型类中实例化一个模型类管理器的对象,作为模 ...

  6. django之模型层(model)--建表、查询、删除基础

    要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...

  7. python 全栈开发,Day70(模板自定义标签和过滤器,模板继承 (extend),Django的模型层-ORM简介)

    昨日内容回顾 视图函数: request对象 request.path 请求路径 request.GET GET请求数据 QueryDict {} request.POST POST请求数据 Quer ...

  8. django ORM模型表的一对多、多对多关系、万能双下划线查询

    一.外键使用 在 MySQL 中,如果使用InnoDB引擎,则支持外键约束.(另一种常用的MyIsam引擎不支持外键) 定义外键的语法为fieldname=models.ForeignKey(to_c ...

  9. [Django学习]模型

    ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...

  10. django之模型

    ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...

随机推荐

  1. I2S接口介绍

    I2S接口介绍一.I2S协议介绍 I2S协议作为音频数据传输协议,由Philips制定.该协议由三条数据线组成:1.SCLK:串行时钟,频率= 2 * 采样频率 * 采样位数.2.WS:字段(声道)选 ...

  2. memcache,redis对比

    一.问题:     数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求.   二.解决方案:      1.通过高速服务器Cache缓存数据库数据      2.内存数据库     ( ...

  3. ES6知识整理(9)--class的基本语法

    (总结完知识点,出去滑板刷街) promise的catch 上一节promise中漏了一个知识点: promise对象可以使用catch来避免每个then中都加error判断,让错误时都进到catch ...

  4. Oracle之用户和表空间

    用户和表空间 看具体下载什么来操作?(oracle  11g,终端) 如果不在虚拟桌面, 它在整个总账项目里占什么位置? 如何使用? 不管学什么都要及时复习和总结,很重要. 增删改查  decode  ...

  5. 解决mySQL占用内存超大问题

    为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆.网上搜索了一下,得到高人指点my.ini.再也没见再详细的了..只好打开my.ini逐行的啃,虽然英文差了点,不过 ...

  6. 分布式系统下的全局id生成策略分析

    对于分布式系统而言,意味着会有很多个instance会并发的生成很多业务数据,比如订单.不同的机房.不同的机器.不同的应用实例会同时生成.所以,如何生成一个好用的全局id并不是一个简单的uuid就能够 ...

  7. linux /Android 平台下使用 i2c-tools

    下载源码将 i2c-tools 代码下载到 Android 源码的 external 目录下 在 i2c-tools 目录下新建 Android.mk 文件,内容如下: # external/i2c- ...

  8. centos7 yum install timeout

    https://yum.dockerproject.org/repo/main/centos/7/repodata/repomd.xml: [Errno 12] Timeout on https:// ...

  9. 1.面向过程编程 2.面向对象编程 3.类和对象 4.python 创建类和对象 如何使用对象 5.属性的查找顺序 6.初始化函数 7.绑定方法 与非绑定方法

    1.面向过程编程 面向过程:一种编程思想在编写代码时 要时刻想着过程这个两个字过程指的是什么? 解决问题的步骤 流程,即第一步干什么 第二步干什么,其目的是将一个复杂的问题,拆分为若干的小的问题,按照 ...

  10. 尚硅谷面试第一季-09SpringMVC中如何解决POST请求中文乱码问题GET的又如何处理呢

    目录结构: 关键代码: web.xml <filter> <filter-name>CharacterEncodingFilter</filter-name> &l ...