一、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数据库操作)的更多相关文章

  1. django基础 -- 5. ORM 数据库操作

    一. ORM 对象关系映射 类   ------   表 类对象   ------   记录 类属性   ------   字段 二.  连接数据库配置 1.在  setting.py 文件中重新设置 ...

  2. Django入门4: ORM 数据库操作

    大纲 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段 ...

  3. Django 2.0 学习(16):Django ORM 数据库操作(下)

    Django ORM数据库操作(下) 一.增加表记录 对于表单有两种方式: # 方式一:实例化对象就是一条表记录france_obj = models.Student(name="海地&qu ...

  4. Django 2.0 学习(14):Django ORM 数据库操作(上)

    Django ORM 数据库操作(上) ORM介绍 映射关系: 数据库表名 ---------->类名:数据库字段 ---------->类属性:数据库表一行数据 ----------&g ...

  5. Django【第5篇】:Django之ORM数据库操作

    django之ORM数据库操作 一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录-------- ...

  6. Django中的ORM进阶操作

    Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. ...

  7. golang学习笔记16 beego orm 数据库操作

    golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...

  8. Django框架 之 ORM查询操作详解

    Django框架 之 ORM查询操作详解 浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Py ...

  9. 循序渐进Python3(十二) --2--  web框架之django简单实现oracle数据库操作

    在 Django 中构建 Oracle 数据库支持的 Web 应用程序 了解如何配置 Django 以便与 Oracle 数据库交互,并使用 ORM 进行数据库连接.             产能在软 ...

  10. Django ----- app 和 ORM的操作和介绍

    创建APP ORM 介绍 ORM的操作 说明一下 GET 和 POST 的区别: , GET ①获取一个页面 ②提交数据 数据显示在URL ?user=alex&pwd=alexdsb ,PO ...

随机推荐

  1. php多进程中的阻塞与非阻塞

    我们通过pcntl_fork来创建子进程,使用pcntl_wait和pcntl_waitpid来回收子进程. 子进程退出后,父进程没有及时回收,就会产生僵尸进程.   例1: <?php def ...

  2. 【转】MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)

    MEF中使用导出与导入,实质上就是对一个对象的实例化的过程,通过MEF的特性降低了对象的直接依赖,从而让系统的设计达到一种高灵活.高扩展性的效果.在具体的设计开发中,存在着某些对象是不需要在系统运行或 ...

  3. Legendre多项式

    Legendre多项式 时间限制: 1 Sec  内存限制: 128 MB 题目描述 Legendre多项式的递归公式

  4. 移动端UI设计规范模板参考以及设计规范的好处

    2018也快要过完了(-_-),我们的移动端的UI设计规范也层出不穷.很多APP设计师也要在年底给公司或者是团队做一个总结.那么一个像样的APP ui设计规范也是很有必要的作品回顾. 在创业公司做着一 ...

  5. DataStage 八、清除日志

    DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 DataStage 三.配置ODBC Da ...

  6. windows10创意者完整镜像下载

    今天给大家分享一个windwos10创意者的完整镜像. 在官网,我们看到的是直接下载安装,但是在没有网的时候我们就无法了 而且在很多的时候我们在下载安装windows10的时候回遇到很多无法估量的问题 ...

  7. php-生成数据库设计文档

    在线以及提供下载数据库设计文档 $dbserver = "192.168.128.190:42578"; $dbusername = "root"; $dbpa ...

  8. redhat 6用yum方式安装nginx

    前提条件:如果发生了没有注册redhat账号造成没有权限使用yum的情况下,可以参考:http://www.cnblogs.com/boshen-hzb/p/6080431.html 1.cd /et ...

  9. OpenGL中位图的操作(glReadPixels,glDrawPixels等)

    OpenGL中位图的操作 OpenGL中位图的操作(glReadPixels,glDrawPixels和glCopyPixels应用举例). 1. BMP文件格式简单介绍 BMP文件是一种像素文件,它 ...

  10. knowledge_map 修改笔记

    20150110 knowledge_map修改的地方: 1.dialog的调整.把结构图中的dialog(另存,新建知识点)调整到全局中(我的列表,knowledge_map_js_showKnow ...