1

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':'123456'

    }
}

 

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文件 

 

展示 

 

posted @ 2018-04-28 14:41  萌哥-爱学习  阅读(207)  评论(0编辑  收藏  举报