django ORM入门
简单总结一下迟老师今天下午上课时讲的ORM操作
目录:
一、首先配置django连接mysql数据库

在项目(projet)的setting中进行设置。比如我的项目叫做myApp,打开
myApp/myApp/setting.py
找到下面这段代码,进行配置:

代码在这:
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',#数据库引擎
'NAME': 'aisystem',#已经建好的数据库名
'USER':'root',#连接mysql的用户名
'PASSWORD':'',#连接密码
'HOST':'127.0.0.1',#设置localhost,如果不是远程的数据库都是这个
'PORT':#在安装mysql的时候设置的端口,没有修改的默认都是3306
}
}
mysql配置
二、在自己创建的app中添加一个model
比如我添加的app叫做 userManage,所以在这里添加一个model:

打开 myApp/myApp/userManage/models.py,添加一个model:

代码在这里:
class TUser(models.Model):
#主键
userId = models.AutoField(primary_key=True,unique=True)#自增 唯一
#用户名
username=models.CharField(max_length=)
#密码
password=models.CharField(max_length=)
TUser
三、利用django生成表
首先执行:
python manage.py makemigrations
可以看到创建TUser成功:

这时候项目目录中应该生成一个叫做migrations的文件夹

然后写入数据库,执行命令:
python manage.py migrate
出现很多ok,我的由于不是第一次写入数据库,所有只有几个

在数据库中可以看到一个叫做tuser的表

四、利用model进行增删改查的操作
首先在数据库中增加两条数据备用:

4.1 实现登陆验证
我们修改login中的代码,实现登陆验证,如果用户名、密码匹配则跳转到首页。否则重新登陆

然后我们开启服务器:
python manage.py runserver
打开登陆页:127.0.0.1:8080/user/login。登陆一下

当输入正确的用户名、密码是,跳转到127.0.0.1/user/index,显示欢迎

当输入错误的用户名或密码,提示错误

4.2操作数据库
为了说明model的用法,我们不考虑逻辑。直接在userManage中增加一个/test,说明一下model的其他常用函数。
首先在userManage/urls中增加一个映射:
path('test/',views.test)
然后再userMange/views中增加一个test方法,直接返回一个渲染的模板。

再在userManage/templates中新建一个名为test.html的文件。

接下来我们慢慢修改这些内容
4.2.1查询数据库中全部内容
修改 userManage/videws.py的test方法:

通过 objects.all方法读取一个表中的全部内容,通过render把参数传递给test.html
然后修改test.html,显示users的内容。

打开test查看一下效果

4.2.2增加一条记录
修改test方法

自己打开test查看结果吧。然后到数据库中可以看到确实增加了一条记录。
4.2.3删除一条记录

访问test将会删除admin用户
4.2.4修改一条记录

可以到数据库或者登陆页面验证小明的密码被修改为2了
这样增删改查的内容就全部介绍完了。当然这只是一种实现方式。还有其它的实现方法,包括但不限于执行sql语句。留给大家自己探索了。
五、作业
给大家重复一下作业:
时间:4月15日-5月5日。
作业内容:实现一个web端文章的管理系统,可以对文章进行增、删、改、查、保存。
检查方式:5月5日课上检查完成情况。
完不成会怎样:我也不知道。但是相信大家经过两天的学习,应该没问题的。实在写不完又被检查到了的话,表演个小节目吧。所以要么抽空写一下作业,要么抽空练练技能。
django ORM入门的更多相关文章
- Django ORM模型
Object Relational Mapping(ORM) 一,ORM介绍 1, ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象 ...
- day 67 django orm的基础
django项目 安装: 创建项目 配置(setting,static,csrf) 创建app,python manage.py startapp app1 三部分 urls.py路由配置 1,普通正 ...
- Django ORM介绍 和字段及字段参数
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- Django ORM字段和字段参数
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- Django orm常用字段和字段参数
1.Object Relational Mapping(ORM) 1.1ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象 ...
- django orm介绍以及字段和参数
Object Relational Mapping (ORM) orm介绍 orm概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数 ...
- django ORM教程(转载)
Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...
- django orm总结[转载]
django orm总结[转载] 转载地址: http://www.cnblogs.com/linjiqin/archive/2014/07/01/3817954.html 目录1.1.1 生成查询1 ...
- Django ORM - 001 - 外键表查询主表信息
开始用Django做web开发,我想大家都会遇到同样的问题,那就是如何高效快速的查询需要的数据,MVC都很简单,但是ORM折腾起来就有些费时间,我准备好好研究下Django ORM,所以会有一个系列的 ...
随机推荐
- 题外话:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗
以下文章虽然是编程,但是对于IT行业都通用 文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样:1. 不要辞职.首先说,你对整个开发没 ...
- STAF进行分布式脚本分发----实践篇
该博文理论支持文章:http://www.cnblogs.com/zhangfei/p/3169139.html 一.准备条件 1.安装STAF.由于其官网被墙了,所以大家可进入WAT群的网盘里去下载 ...
- 树莓派进阶之路 (016) - 通过595驱动4位LED显示系统时间
模块图片,4位共阳极数码管. 我们使用树莓派wiringPi的库来通过74HC595驱动4位数码管: C 代码如下: #include <wiringPi.h> #include < ...
- Redis 学习之路 (009) - Redis-cli命令最新总结
资料来源: http://redisdoc.com/ http://redis.io/commands 连接操作相关的命令 默认直接连接 远程连接-h 192.168.1.20 -p 6379 pi ...
- 【java】详解I/O流
目录结构: contents structure [+] File类 I/O流体系 流的基本介绍 访问文件 转化流 DataInputStream和DataOutputStream 对象流 推回输入流 ...
- mysql开发常用小结
1.时间转换 时间戳转时间 FROM_UNIXTIME 比如 FROM_UNIXTIME(1449480551/1000,'%Y-%m-%d %H:%i:%s') 如果是精确到毫秒的时间戳,则必 ...
- /proc 目录详细说明
/proc路径详细: Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以 ...
- Openlayers2中统计图的实现
概述: 在前文中.介绍了Arcgis for js和Openlayers3中统计图的实现.在本文,书接上文.介绍在Openlayers2中,统计图的实现. 实现: 在Openlayers2中,popu ...
- ural 1091. Tmutarakan Exams(容斥)
http://acm.timus.ru/problem.aspx? space=1&num=1091 从1~s中选出k个数,使得k个数的最大公约数大于1,问这种取法有多少种. (2<=k ...
- Java 垃圾回收思维导图
文 by / 林本托 Tips 做一个终身学习的人. Java 的垃圾回收,不像 C和 C++语言,内存的分配和释放都是靠程序员来控制的.而 Java 的内存回收,程序员是不能也是无法干预,具体什么时 ...