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