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类主要做的工作就是重写 ...
随机推荐
- Eclipse IDE配置PHP开发、调试环境
前言 使用java语言开发的朋友想必对Eclipse开发工具已经不陌生了,那么Eclipse作为java主流的开发工具,是否能够开发PHP项目呢?答案如你所想,肯定是可以的!以下就是该IDE下如何配置 ...
- Git命令图片版
- LINQ 组合查询 和分页查询的使用
前端代码 <%@ Page Language="C#" AutoEventWireup="true" Debug="true" Cod ...
- WisdomTool REST Client 下载 测试请求,生成api文档
https://github.com/Wisdom-Projects/rest-client
- mongodb安全整理
本文大都网上参考的,我只是整理了一下 一默认配置情况 1.MongoDB安装时不添加任何参数,默认是没有权限验证的,任何用户都可以登录进来,而且登录的用户可以对数据库任意操作而且可以远程访问数据库,需 ...
- ABAP Development Tools的语法高亮实现原理
ABAP Development Tools的前端是Java,根本识别不了ABAP.那么在ADT里的ABAP语法高亮是如何实现的? 第一次打开一个report时,显示在ADT里的代码是没有任何语法高亮 ...
- UITableView设计思想 考察
整体使用了build模式:单是组织结构混乱:不符合人类思维. UITableViewDataSource:描述了View的要素个数情况:并担负了builder功能. UITableViewDelega ...
- vue 修改端口
- fork新建进程
#include <sys/types.h>#include<sys/wait.h>#include<unistd.h>#include<stdio.h> ...
- Dojo的dojoConfig函数
在我们引入 Dojo 的时候都会先做一些全局的配置,所使用的就是 Dojo 的 Config 接口. dojoConfig为以前的dgConfig函数. <script type="t ...