django的models模块里面能够新增一张表和字段,一般页面上的数据操做都来源于数据库的增删改查,django如何对msyql数据库增删改查操做呢?
本篇详细讲解django操做mysql数据库mysql
接着前面数据库User表建立成功后,若是咱们在页面上注册用户的话,就须要在User表新增一条数据
好比,咱们想在User表插入一组数据 user_name=yoyo5, psw=555555sql
在urls.py同一目录(helloworld/helloworld/testdb.py)新建一个testdb.py脚本数据库
# helloworld/helloworld/testdb.py from django.http import HttpResponse from hello.models import User # 新增数据 def add_user(request): test1 = User(user_name='yoyo5', psw="55555") test1.save() return HttpResponse("yoyo5用户建立成功!看去看看吧")
urls.py新增url访问地址django
from django.conf.urls import url from django.urls import re_path, path from hello import views from . import testdb urlpatterns = [ # 新增用户 url(r'^register$', testdb.add_user), ]
浏览器输入http://localhost:8000/register,就会看到页面显示:yoyo5用户建立成功!看去看看吧
查询数据库,会发现hello_user表新增了一个yoyo5的数据浏览器
若是须要修改数据库的某个数据,好比我想把yoyo5用户的psw改为999999函数
在urls.py同一目录(helloworld/helloworld/testdb.py)的testdb.py脚本,继续写个update_psw函数url
# helloworld/helloworld/testdb.py from django.http import HttpResponse from hello.models import User # 更新数据 def update_psw(request): # 修改其中一个user_name='yoyo5'的字段,再save,至关于SQL中的UPDATE test2 = User.objects.get(user_name='yoyo5') test2.psw = '999999' test2.save() # 另一种方式 # Test.objects.filter(id=1).update(name='Google') # 修改全部的列 # Test.objects.all().update(name='Google') return HttpResponse("<p>密码修改为功</p>")
urls.py新增url访问地址code
from django.conf.urls import url from django.urls import re_path, path from . import testdb urlpatterns = [ # 新增用户 url(r'^register$', testdb.add_user), url(r'^update$', testdb.update_psw), ]
浏览器输入http://localhost:8000/update,就会看到页面显示:密码修改为功
查询数据库,会发现hello_user表yoyo5的psw对应的值修改了对象
若是user表里面的某个用户数据不想要了,也能够删除数据排序
# 删除数据 def delete_user(request): # 删除user_name=yoyo1的数据 test3 = User.objects.get(user_name='yoyo1') test3.delete() # 另一种方式 # Test.objects.filter(id=1).delete() # 删除全部数据 # Test.objects.all().delete() return HttpResponse("<p>删除成功</p>")
urls.py新增url访问地址
from django.conf.urls import url from django.urls import re_path, path from . import testdb urlpatterns = [ # 新增用户 url(r'^register$', testdb.add_user), url(r'^update$', testdb.update_psw), url(r'^delete$', testdb.delete_user), ]
浏览器输入http://localhost:8000/delete,就会看到页面显示:删除成功
查询数据库,会发现hello_user表yoyo1对应的数据清除了
备注:要是表里面没这个数据,会报错:User matching query does not exist.
好比我要查询user表里面yoyo用户对应的mail的值
在urls.py同一目录(helloworld/helloworld/testdb.py)的testdb.py脚本,继续写个update_psw函数
# 查询数据 def select_mail(request): # 方法1 能够查询单个结果直接获取mail值 m = User.objects.get(user_name='yoyo').mail # 方法2 filter至关于SQL中的WHERE,可设置条件过滤结果 # test4 = User.objects.filter(user_name='yoyo') # 查询结果是list,取下标后,获取mail字段的值 # m = test4[0].mail return HttpResponse("<p>查询结果:%s</p>" % m)
urls.py新增url访问地址
from django.conf.urls import url from django.urls import re_path, path from . import testdb urlpatterns = [ # 新增用户 url(r'^register$', testdb.add_user), url(r'^update$', testdb.update_psw), url(r'^delete$', testdb.delete_user), url(r'^mail$', testdb.select_mail), ]
浏览器输入http://localhost:8000/mail,就会看到页面显示:查询结果:283340479@qq.com
经过objects这个模型管理器的all()得到全部数据行,至关于SQL中的SELECT * FROM
a = User.objects.all()
filter至关于SQL中的WHERE,可设置条件过滤结果
b = User.objects.filter(id=1)
获取单个对象
c = User.objects.get(id=1)
限制返回的数据 至关于 SQL 中的 OFFSET 0 LIMIT 2;
d = User.objects.order_by('name')[0:2]
查询结果排序
e = User.objects.order_by("id")
上面的方法能够连着使用
f = User.objects.filter(name="runoob").order_by("id")
django交流QQ群:779429633