Django连接数据库增删改查操作
1.创建Djando项目并添加APP
2.修改配置文件
settings.py文件第58行改为如下
将最后一行注释,并添加STATICFILES_DIRS=(os.path.join(BASE_DIR, ‘static’),)
特别注意,元组内只有元素,必须要加逗号
3、app下models.py文件写数据库模型
from django.db import models
#配置数据库信息settings.py中
# 1、创建模型类,同步数据库
#写页面,视图函数,路由
# Create your models here.
class Person(models.Model):#用户继承模型类id=models.AutoField(primary_key=True)#主键自动增长,默认name=models.CharField(max_length=32)#最大长度为32age=models.IntegerField()#年龄(int)height=models.DecimalField(max_digits=5,decimal_places=2)#身高小数max_dights表示位数,decimal_places#DecimalField小数 Decimal十进制的小数 Field领域weight=models.FloatField()#体重 FloatField()浮点数birthday=models.DateField()#YYYY-MM-DD DateField()日期函数YYYY-MM-DDdef __str__(self):return "<字符串>"#只要返回一个字符串即可
4、数据库文件操作
按如下点击
生成数据库文件makemigrations
执行数据库文件生成数据库migrate
需要修改或编写的文件位置
5、templates文件下写HTML文件主要是form表单和table表格
all.html展示页面
<html lang="en">
<head><meta charset="UTF-8"><title>展示页面</title>
</head>
<body>
<table border="6"><tr><td>序号:</td><td>id:</td><td>1姓名:</td><td>年龄:</td><td>身高:</td><td>体重:</td><td>生日:</td><td>操作:</td></tr>{% for obj in obj_list %}<tr><td>{{ forloop.counter }}</td><td>{{ obj.id }}</td><td>{{ obj.username }}</td><td>{{ obj.age }}</td><td>{{ obj.height }}</td><td>{{ obj.weight }}</td><td>{{ obj.birthday|date:"Y-m-d" }}</td><td><a href="/add/">增加</a><a href="/delete/id={{ obj.id }}">删除</a><a href="/exit/id={{ obj.id }}">修改</a> </td></tr>{% endfor %}</table>
</body>
</html>
add.html增加文件页面
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>添加页面</title>
</head>
<body>
<form action="/add/" method="post">{% csrf_token %}<p> 姓名:<input type="text" name="username"> </p><p> 年龄: <input type="text" name="age"></p><p> 身高: <input type="text" name="height"></p><p> 体重: <input type="text" name="weight"></p><p> 生日: <input type="text" name="birthday"></p><p> <input type="submit" value="增加"></p></form>
</body>
</html>
exit.html修改文件页面
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="/exit/" method="post">{% csrf_token %}<p><input type="hidden" value="{{ obj.id }}" name="id"></p><p> 姓名:<input type="text" value="{{ obj.name }}" name="username"> </p><p> 年龄: <input type="text" value="{{ obj.age }}" name="age"></p><p> 身高: <input type="text" value="{{ obj.height }}" name="height"></p><p> 体重: <input type="text" value="{{ obj.weight }}" name="weight"></p><p> 生日: <input type="text" value="{{ obj.birthday }}" name="birthday"></p><p> <input type="submit" value="确认修改"></p></form>
</body>
</html>
6、app下的views文件
from django.shortcuts import render,redirect,HttpResponse
from app1 import models
def add(request):#增加if request.method=="GET":return render(request,'add.html')else:name=request.POST.get('username')age=request.POST.get('age')height=request.POST.get('height')weight=request.POST.get('weight')birthday=request.POST.get('birthday')print(name,age,height,weight,birthday)models.Person.objects.create(#将数据导入数据库models是文件名#Person是数据表对应的类name=name,age=age,height=height,weight=weight,birthday=birthday,)return redirect('/all/')
def all(request):#1.查询数据库obj_list=models.Person.objects.all()#查询所有的数据库记录#models.类名.objects.all()#查询类名对应的数据表内的所有信息# Create your views here.return render(request,'all.html',{'obj_list':obj_list})
def delete(request):id=request.GET.get('id')#获取idmodels.Person.objects.get(id=id).delete()#查询数据库并删除数据库return redirect('/all/')
def exit(request):if request.method=="GET":id=request.GET.get('id')obj=models.Person.objects.get(id=id)#get返回具体的对象# print(obj,"obj")return render(request,'exit.html',{'obj':obj})else:#1.获得表单提交的内容id=request.POST.get('id')#获取idname=request.POST.get('username')age = request.POST.get('age')height = request.POST.get('height')weight = request.POST.get('weight')birthday = request.POST.get('birthday')models.Person.objects.filter(id=id).update(#将数据导入数据库 Person是数据表对应的类name=name,age=age,height=height,weight=weight,birthday=birthday,)return redirect('/all/')#重定向
7、urls.py文件配置
from django.contrib import admin
from django.urls import path
from app1.views import *
urlpatterns = [path('admin/', admin.site.urls),path('add/', add),path('all/', all),path('delete/', delete),path('exit/',exit),
]
Django连接数据库增删改查操作相关推荐
- python增删改查的框架_简单的Django框架增删改查操作
Django之orm对MysqL数据库的增删改查操作简介: 利用Django中orm来查找数据库中的数据,对数据库进行增.删.改.查: 增:新增数据 # 操作数据库user表新增记录 # 方式1: u ...
- 学生信息管理系统(连接数据库,面向对象的方法实现学生信息的增删改查操作)...
---------------------------------------------------------------------------------------------------- ...
- Django从理论到实战(part27)--ORM模型的增删改查操作
学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...
- python diango 增删改查_python中关于django对数据库Mysql的增删改查操作详解
下面小编就为大家带来一篇python django 增删改查操作 数据库Mysql.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 下面介绍一下django增删改查操作: ...
- Django数据库数据增删改查操作
一. 无需实现model.py文件获取实例对象就能直接通过连接数据库进行数据的增删改查操作 # 连接数据库用于查询(查询单个或多个) def db_query(sql):# 打开数据库连接db = p ...
- python操作mysql的增删改查_详解使用pymysql在python中对mysql的增删改查操作(综合)...
这一次将使用pymysql来进行一次对MySQL的增删改查的全部操作,相当于对前五次的总结: 先查阅数据库: 现在编写源码进行增删改查操作,源码为: #!/usr/bin/python #coding ...
- java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作
1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...
- python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码
1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...
- Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作
此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...
最新文章
- Windows7 64bit VS2013 Caffe test MNIST操作步骤
- 详解zabbix中文版安装部署
- 计算机笔试图形推理题,【笔记】教资笔试丨4分钟掌握信息处理以及逻辑判断!...
- 干货 | 携程是如何做AB实验分流的
- 回溯的问题合集(Leetcode题解-Python语言)
- geteditor p 取消自动_2020百度网盘超级会员怎么取消自动续费?
- NOIP模拟测试7「方程的解·visit」
- SQLAlchemy schema.MetaData
- Django搭建的个人博客
- 计算机知识选择题库,计算机基础知识篇选择题库
- 塞班系统微信连接不上服务器,充满情怀的塞班系统:手机QQ、微信将无法登陆使用...
- QQ产品界面变更之路
- Java越学越迷茫,应该怎么办?
- 零售行业新渠道,效率居然这么高?
- 【Stream】java8新特性Stream流总结
- java输入一个年份,利用Java实现从键盘输入一个年份,程序输出改年出生的人的生肖...
- 计算机原理课堂,计算机原理课堂测验题集.ppt
- 微信小程序之子页面动态修改导航栏标题文字内容
- svn——“验证位置时发生错误” e170001: 认证失败
- java导出excel限制大小_解决java poi导出excel2003不能超过65536行的问题
热门文章
- 常见开源项目结构划分
- 【Python】解决TypeError: 'unicode' object does not support item assignment
- 【Java虚拟机】Java虚拟机深度讲解、VisualVM工具、JVM调优
- netty系列之:内置的Frame detection
- Libra教程之:move语言的特点和例子
- 基础补充和加强——希望对后来的人有所帮助
- try catch用法_synchronized用法总结
- 10.term level 查询
- 计算机秋招必备!北京互联网大厂企业整理清单!
- java aio为什么不稳定_烯醇式结构为什么不稳定?