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类主要做的工作就是重写 ...
随机推荐
- SDUT 1309 不老的传说问题 (区间DP)
题意: 有一个环形序列,n个数字表示一种颜色,要求将白板环刷成一模一样的环,限制是每次最多只能刷连续的K个位置,问最少需要刷几次? 思路: 跟2008长春那道painter string 差不多.只是 ...
- SAP公有云和私有云解决方案概述
SAP公有云解决方案见下图最右侧,比较著名的有SAP SuccessFactors和SAP Cloud for Customer(C4C)等,作为SAP软件即服务(SaaS)的解决方案. 而最左侧的S ...
- UVALive 4329 Ping pong (BIT)
枚举中间的人,只要知道在这个人前面的技能值比他小的人数和后面技能值比他小的人数就能计算方案数了,技能值大的可有小的推出. 因此可以利用树状数组,从左到右往树上插点,每个点询问sum(a[i]-1)就是 ...
- CentOS更改时区
1.编辑文件 vi /etc/sysconfig/clock 修改内容 ZONE="Asia/Shanghai" 2.覆盖旧时区文件 cp /usr/share/zoneinfo/ ...
- 7.Props向子组件传递数据
组件实例的作用域是孤立的.这意味着不能并且不应该在子组件的模板内直接引用父组件的数据. 可以使用 props 把数据传给子组件. for-child-msg="aaa" , fo ...
- Windows上PostgreSQL安装配置教程
Windows上PostgreSQL安装配置教程 这篇文章主要为大家详细介绍了Windows上PostgreSQL安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 PostgreSQL的 ...
- mac 使用homebrew 安装mysql
1. 安装homebrew ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" brew update ...
- ubuntu 16.04 +anaconda3.6 +Nvidia DRIVER 390.77 +CUDA9.0 +cudnn7.0.4+tensorflow1.5.0+neural-style
这是我第一个人工智能实验.虽然原理不是很懂,但是觉得深度学习真的很有趣.教程如下. Table of Contents 配置 时间轴 前期准备工作 anaconda3 安装 bug 1:conda:未 ...
- 字节跳动后端开发实习生面试(Python)
一面: 1.自我介绍. 2.介绍“工大小美”项目相关. 3.Python中的GIL(全局解释器锁),以及哪种情况下使用python的多线程性能有较大的提升. 4.项目中用到了SQLite数据库,如果有 ...
- kubernetes安装rabbitmq集群
1.准备K8S环境 2.下载基础镜像,需要安装两种插件:autocluster.rabbitmq_management 方法一: 下载已有插件镜像 [root@localhost ~]#docker ...