Day 61 Django第二天 (orm数据库操作)
一、get请求和post请求
GET请求:
1. 浏览器请求一个页面
2. 搜索引擎检索关键字的时候
POST请求:
1. 浏览器向服务端提交数据,比如登录/注册等
二 、 Django中的APP:
什么是APP?以及为什么要用APP?
project --> 项目 (老男孩教育大学校)
APP --> 应用 (Linux学院/Python学院/大数据学院/Java学院)
方便我们在一个大的Django项目中,管理实现不同的业务功能.
1. 创建APP的命令
1. 命令行,在Django项目的根目录输入:
python3 manage.py startapp app名字

三 、 ORM
ORM:
优点:
1. 简单,不用自己写SQL语句
2. 开发效率高
缺点:
1. 记忆你这个特殊的语法
2. 相对于大神些的SQL语句,肯定执行效率有差距
ORM的对应关系:
类 ---> 数据表
对象 ---> 数据行
属性 ---> 字段
ORM能做的事儿:
1. 操作数据表 --> 创建表/删除表/修改表
操作models.py里面的类
2. 操作数据行 --> 数据的增删改查
不能创建数据库,自己动手创建数据库
使用Django的ORM详细步骤:
1. 自己动手创建数据库
create database 数据库名;
2. 在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库)
# 数据库相关的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 连接的数据库类型
'HOST': '127.0.0.1', # 连接数据库的地址
'PORT': 3306, # 端口
'NAME': "day61", # 数据库名称
'USER': 'root', # 用户
'PASSWORD': '123456' # 密码
}
}
3. 告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库
在项目/__init__.py文件中,写下面两句:
import pymysql
# 告诉Django用pymysql来代替默认的MySQLdb
pymysql.install_as_MySQLdb()
4. 在app下面的models.py文件中定义一个类,这个类必须继承models.Model
class 类名(models.Model):
...
5. 执行两个命令
1. python3 manage.py makemigrations
2. python3 manage.py migrate
ORM单表的增加和查询:
1. 查询
models.UserInfo.objects.all()
2. 增加
models.UserInfo.objects.create(name="张三")
一、创建表
1. 自己动手创建数据库
create database day61
create table userinfo(id int auto_increment primary key varchar(10) not null ,pwd varchar(18) not null
2. 在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库)
# 数据库相关的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 连接的数据库类型
'HOST': '127.0.0.1', # 连接数据库的地址
'PORT': 3306, # 端口
'NAME': "day61", # 数据库名称
'USER': 'root', # 用户
'PASSWORD': '123456' # 密码
}
}
在setting文件夹下做如下配置
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#连接数据库类型
'ENGINE':'django.db.backends.mysql',
##连接数据库的地址
'HOST':'127.0.0.1',
##数据库名称
'NAME':'day61',
#用户
'USER': 'root',
#密码
'PASSWORD':''
}
}

3. 告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库
在init文件下写代码
import pymysql
pymysql.install_as_MySQLdb()

4. 在app下面的models.py文件中定义一个类,这个类必须继承models.Model
在module文件下添加
from django.db import models # Create your models here. #ORM 相关的只能写在这个文件中,写到别的文件里Django找不到. class UserInfo(models.Model):
id = models.AutoField(primary_key= True)#创建一个自增的主键字段
name =models.CharField(null=False,max_length=32)#创建一个varchar(20)类型的不能为空的名字字段

5. 执行两个命令
1. python3 manage.py makemigrations
2. python3 manage.py migrate

查看表格 在mysql数据库里

c

二、删除表
把下面的语句注释掉然后执行 那两个语句
class UserInfo(models.Model):
id = models.AutoField(primary_key= True)#创建一个自增的主键字段
name =models.CharField(null=False,max_length=32)#创建一个varchar(20)类型的不能为空的名字字段
1. python3 manage.py makemigrations
2. python3 manage.py migrate
记录在了小本本 里

三、改表
修改class userinfo 的代码在执行两个指令
四、添加数据





五、表单操作之列表展示
在django project中url里添加数据
from app01 import views urlpatterns=[
# url(r'^yimi/',yimi),
# url(r'^xiaohei/',xiaohei),
url(r'^index/',views.index),
# url(r'^user_list/',user_list)
url(r'^user_list/',views.user_list)
]
在app01的views 里添加
from django.shortcuts import HttpResponse, render
from app01 import models
def user_list(request):
#去数据库中查询所有的用户
#利用orm这个工具去查询数据库,不用自己去查询
ret = models.UserInfo.objects.all()
print(ret[0].id,ret[0].name)
#打开user_list.html文件
return render(request,'user_list.html',{'user_list':ret})
在建一个html文件

展示
Day 61 Django第二天 (orm数据库操作)的更多相关文章
- django基础 -- 5. ORM 数据库操作
一. ORM 对象关系映射 类 ------ 表 类对象 ------ 记录 类属性 ------ 字段 二. 连接数据库配置 1.在 setting.py 文件中重新设置 ...
- Django入门4: ORM 数据库操作
大纲 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段 ...
- Django 2.0 学习(16):Django ORM 数据库操作(下)
Django ORM数据库操作(下) 一.增加表记录 对于表单有两种方式: # 方式一:实例化对象就是一条表记录france_obj = models.Student(name="海地&qu ...
- Django 2.0 学习(14):Django ORM 数据库操作(上)
Django ORM 数据库操作(上) ORM介绍 映射关系: 数据库表名 ---------->类名:数据库字段 ---------->类属性:数据库表一行数据 ----------&g ...
- Django【第5篇】:Django之ORM数据库操作
django之ORM数据库操作 一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录-------- ...
- Django中的ORM进阶操作
Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. ...
- golang学习笔记16 beego orm 数据库操作
golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...
- Django框架 之 ORM查询操作详解
Django框架 之 ORM查询操作详解 浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Py ...
- 循序渐进Python3(十二) --2-- web框架之django简单实现oracle数据库操作
在 Django 中构建 Oracle 数据库支持的 Web 应用程序 了解如何配置 Django 以便与 Oracle 数据库交互,并使用 ORM 进行数据库连接. 产能在软 ...
- Django ----- app 和 ORM的操作和介绍
创建APP ORM 介绍 ORM的操作 说明一下 GET 和 POST 的区别: , GET ①获取一个页面 ②提交数据 数据显示在URL ?user=alex&pwd=alexdsb ,PO ...
随机推荐
- php Pthread 多线程 (一) 基本介绍
我们可以通过安装Pthread扩展来让PHP支持多线程. 线程,有时称为轻量级进程,是程序执行的最小单元.线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,它与同属 ...
- 读书笔记---改善c#编程的157个建议
1.在拼接string时,如果牵涉到其他类型,先tostring一下会减少装箱操作:频繁操作字符串变量的话,使用stringbuilder效率较高. 2.tryParse相对于parse而言效率高,t ...
- canvas学习持续更新
参考:菜鸟教程,canvas教程 绘制一个简单的矩形 <body> <canvas id="myCanvas" width="200" hei ...
- Phalcon Framework的MVC结构及启动流程分析
目前的项目中选择了Phalcon Framework作为未来一段时间的核心框架.技术选型的原因会单开一篇Blog另说,本次优先对Phalcon的MVC架构与启动流程进行分析说明,如有遗漏还望指出. P ...
- Netty 源码 NioEventLoop(一)初始化
Netty 源码 NioEventLoop(一)初始化 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) Netty 基于事件 ...
- 使用 springmvc请求 返回 字符串时 ,中文出现乱码
@RequestMapping(value="/askQuestion" ,method = RequestMethod.GET , produces = {"appli ...
- 用Notepad++在文本文件里快速在每行头尾都加上指定的内容(转载)
- 内建类型,与用户自定义类型,返回值为const
1对内建类型来说,按值返回的是否为const,是无关紧要的,因为编译器已经不让它成为一个坐直,因为它总是一个值,而不是一个变量(thing in c++ page192) 2当处理用户自定义的类型时, ...
- redis与ssm整合(用 redis 替代mybatis二级缓存)
SSM+redis整合 这里主要是利用redis去做mybatis的二级缓存,mybaits映射文件中所有的select都会刷新已有缓存,如果不存在就会新建缓存,所有的insert,update操作都 ...
- JPEG Camer 图片上传
/* Linksprite */ #include <SoftwareSerial.h> #include <Ethernet.h> #include <SPI.h> ...


