Django创建并连接数据库(实现增删改查)--ORM框架雏形
第一步:要先创建数据库(orm是不能创建数据库的)
第二步:settings里面指定连接到哪个数据库
DATABASES = {
#默认使用的是sqlite3数据库
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
#指定使用Mysql数据库
# 'default':{
# 'ENGINE':'django.db.backends.mysql',
# 'HOST':'127.0.0.1',
# 'PORT':3306,
# 'USER':'root',
# 'PASSWORD':'root',
# 'NAME':'userinfo', #指定到那个数据库(数据库要事先建好)
#
# }
}
上面的NAME就是指定的数据库的名字
第三步:在app文件夹下面的init.py里面配置
#因为操作msq数据库默认是用Mysqldb,现在就是手动指定用pymsql来操作数据库:
import pymysql
pymysql.install_as_MySQLdb()
第四步:在models里定义类,类必须继承 models.Model,写属性,对应着数据库的字段
#指定数据库表都有哪些字段及字段的属性
from django.db import models # Create your models here. class UserInfo(models.Model):
nid = models.AutoField(primary_key=True) #是否设置为主键
name = models.CharField(max_length=32)
# password = models.CharField(max_length=32,default='nicai') #可以指定默认值
password = models.CharField(max_length=32,)
gender = models.IntegerField()
birthday = models.DateField() def __str__(self):
return self.name
第五步:迁移数据库(makemigrations是生成一个文件,migrate是将更改提交到数据量)
方式一:
执行 python manage.py makemigrations(相当于做一个记录)


执行 pyhton manage.py migrate (把前面创建的表的字段执行到数据库中)

对应settings里面添加的app自动会有相对应的数据表(创建好的表的名字=aap名字+models.py里面定义的class类的名字)


方式一:通过pycharm软件点击

第六步:views.py拿网页数据并将录入到数据库指定表的字段里面
from django.shortcuts import render,HttpResponse # Create your views here. from app01.models import * #通过网页注册,拿到用户的数据信息,完成注册
def register(request):
if request.method == "POST":
name=request.POST.get('name',None)
password=request.POST.get('password',None)
gender=request.POST.get('gender',None)
birthday=request.POST.get('birthday',None) #实例化models.py里面的UserInfo类,传入上面从Web提交过来的数据,将数据写入数据库
user=UserInfo.objects.create(birthday=birthday,name=name,password=password,gender=gender)
print(user) #UserInfo object 是个对象
print(user.__dict__) #{'_state': <django.db.models.base.ModelState object at 0x05482290>, 'nid': 4, 'name': 'b', 'password': 'b', 'gender': '5', 'birthday': '1992-03-28'} return HttpResponse('注册成功') return render(request,'register.html') #查看表的内容
def user_list(request):
user_list=UserInfo.objects.all()
print(user_list) #<QuerySet [<UserInfo: yangzhizong>, <UserInfo: 杨智宗>]> QuerySet:即结果集
print(type(user_list)) #<class 'django.db.models.query.QuerySet'>
print(user_list[1].name) #yangzhizong 可以依次取出输入的name值 return render(request,'user_list.html',{'user_list':user_list})
第七步:更新表的时候就要执行下这2条命令:makemigrations 和 make (每次都会有记录,不能删除)

取出数据库中每条所有的用户的信息,相当于一个对象 列表对象里 放了一堆对象

第八步:查询表时也可以一对一,多对多查询(待完善。。)

Django创建并连接数据库(实现增删改查)--ORM框架雏形的更多相关文章
- 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...
- 数据库开发基础-SQl Server 控制数据库的服务+数据库的创建与管理(增删改查)
控制数据库的服务: 方法一: 1.Windows+R 打开运行 打开cmd 2.输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver 关闭数据 ...
- 使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能
此处采用VS2017+SqlServer数据库 一.创建项目并引用dll: 1.创建一个MVC项目 2.采用Nuget安装EF6.1.3 二.创建Model 在models文件夹中,建立相应的mode ...
- BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块
NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...
- 数据库开发基础-★SQl Server 控制数据库的服务+数据库的创建与管理(增删改查)★
控制数据库的服务: 方法一: 1.Windows+R 打开运行 打开cmd 2.输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver 关闭数据 ...
- Django之model基础(增删改查)
一.ORM 映射关系 表名 <-------> 类名 字段 <-------> 属性 表记录 <------->类实例对象二.创建表(建立模型) 在创建表之前的准备 ...
- Django中多表的增删改查操作及聚合查询、F、Q查询
一.创建表 创建四个表:书籍,出版社,作者,作者详细信息 四个表之间关系:书籍和作者多对多,作者和作者详细信息一对一,出版社和书籍一对多 创建一对一的关系:OneToOne("要绑定关系的表 ...
- Django REST framework 五种增删改查方法
Django-DRF-视图的演变 版本一(基于类视图APIView类) views.py: APIView是继承的Django View视图的. 1 from .serializers impor ...
- linq的创建 和 数据的增删改查
1.linq创建之前,一定要在sql做好数据表的主外键关系. 2.linq文件是以.dbml结尾,一般一个数据库的名字就是一个linq的名字 3,以实例来演示增删改查 数据库的名字为linq,里面有两 ...
- 利用SQLiteOpenHelper创建数据库,进行增删改查操作
Android中提供SQLiteOpenHelper类,在该类的构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象.继承和扩展SQLiteOpenHelper类主要做的工作就是重写 ...
随机推荐
- android 内存泄露测试
Android 程序由java语言编写,android的内存管理与java相似,通过new为对象分配内存,所有对象在java堆内分配空间,对象回收有个垃圾回收器来完成.GC就是垃圾收集的意思(Gaba ...
- BZOJ 3712: [PA2014]Fiolki 倍增+想法
3712: [PA2014]Fiolki Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 437 Solved: 115[Submit][Status ...
- codeforce Gym 100500I Hall of Fame (水)
题意:统计一些串中,字母的出现频率,不分大小写,找出现频率最高5个字符(相同频率优先取字典序大的),把他们的对应的值加起来判断以下是否大于62. 没出现的不算. #include<cstdio& ...
- C++链表简单的应用
学生管理系统,输入学生的姓名和学号,然后再输出: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include <stdlib ...
- MyBatis01 Idea中搭建MyBatis开发环境
项目结构 POM模板 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...
- Java制作桌面弹球下载版 使用如鹏游戏引擎制作 包含2个精灵球同时弹动
package com.swift; import com.rupeng.game.GameCore; public class DesktopBouncingBall implements Runn ...
- 到底该如何理解DevOps这个词
炒了8年的概念,到底该如何理解DevOps这个词? 转载本文需注明出处:EAII企业架构创新研究院,违者必究.如需加入微信群参与微课堂.架构设计与讨论直播请直接回复公众号:“EAII企业架构创新研究院 ...
- [图文] Fedora 28 使用 Virt-Manager 创建 KVM 虚拟机以及 配置 KVM 虚拟机
实验说明: 往后的许多实验都将以Linux平台下的 KVM虚拟机为主,所以不可少的就是 Virt-Manager 虚拟机管理器. 本章将对如何安装和使用Virt-Manager管理器进行讲解,并且会对 ...
- charles 模拟手机弱网、修改请求参数、修改返回值
1.charles模拟弱网(断网) 2.charles修改请求参数 (1)先访问一次需要改的请求,在charles上找到相应的请求地址 (2)然后在需要打断点的请求上右键,勾选[Breakpoints ...
- python入门:if、elif、else 条件语句的基本用法
#!/usr/bin/env python # -*- coding:utf-8 -*- #elif(否则如果,译音:埃尔夫)eise(否则,译音:埃尔斯) #if.elif.else 条件语句的基本 ...