真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

django--ORM入門到精通-創(chuàng)新互聯(lián)

一,Django ORM 與原生SQL對(duì)比

ORM:  
  優(yōu)點(diǎn):
    1.簡(jiǎn)單,不用自己SQL語句
    2.開發(fā)效率高
  缺點(diǎn):
    1.記憶你這個(gè)特殊的語法
    2. 相對(duì)于大神的SQL語句,肯定執(zhí)行效率有差距
  

成都創(chuàng)新互聯(lián)成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站,網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:13518219792

二、ORM的對(duì)應(yīng)關(guān)系

ORM的對(duì)應(yīng)關(guān)系:
    類        --->    數(shù)據(jù)表
    對(duì)象      --->    數(shù)據(jù)行
    屬性      --->    字段

三、ORM能做的事兒

ORM能做的事兒:
    1.操作數(shù)據(jù)表    --->    創(chuàng)建表、刪除表、修改表
    2.操作數(shù)據(jù)行    --->    數(shù)據(jù)的增、刪、改、查
    
    注意事項(xiàng):不能創(chuàng)建數(shù)據(jù)庫、自己動(dòng)手創(chuàng)建數(shù)據(jù)庫

四、自己動(dòng)手手動(dòng)創(chuàng)建數(shù)據(jù)庫

1. 修改django項(xiàng)目中settings.py 中數(shù)據(jù)庫連接類型:


create database dbs11;

2. 在Django項(xiàng)目中設(shè)置連接數(shù)據(jù)庫的相關(guān)配置(告訴Django連接哪一個(gè)數(shù)據(jù)庫)


#數(shù)據(jù)庫相關(guān)配置
DATABASES = {
    'default':{
        #連接的數(shù)據(jù)庫類型
        'ENGINE':'django.db.backends.mysql',
        #連接數(shù)據(jù)庫的地址
        'HOST':'127.0.0.1',
        #數(shù)據(jù)庫端口
        'PORT':3306,
        #連接數(shù)據(jù)庫的名稱
        'NAME':"dbs11",
        #連接數(shù)據(jù)庫的用戶名
        'USER':'root',
        #連接數(shù)據(jù)庫的密碼
        'PASSWORD':'123456'
    }
}

3.告訴Django用pymysql代替默認(rèn)的MySQLDB 連接MySQL數(shù)據(jù)庫

    在項(xiàng)目目錄中__init__.py文件中導(dǎo)入MySQL連接配置文件


import pymysql

#告訴Django用pymysql來代替默認(rèn)的MySQLdb
pymysql.install_as_MySQLdb()

4.在項(xiàng)目如(app)下面的models.py 文件中定義一個(gè)類,這個(gè)類必須繼承models.Model

from django.db import models

#ORM相關(guān)的只能寫在這個(gè)文件里,寫到別的文件里Django找不到
##例如:

class UserInfo(models,Model):
    id = models.AutoField(primary_key=True)    #創(chuàng)建一個(gè)自增的主鍵字段
    name = models.CharField(null=False,max_length=16)    #創(chuàng)建一個(gè)varchar類型的字段不能為空

5.執(zhí)行兩個(gè)命令

python3 manage.py makemigrations
python3 manage.py migrate

說明:以上為通過ORM創(chuàng)建數(shù)據(jù)庫,如果是刪除或者修改只需要在models.py文件中刪除相關(guān)字段然后執(zhí)行第5步的兩個(gè)命令即可刪除字段。修改同樣只需要修改models.py文件然后執(zhí)行第5步的兩個(gè)命令即可。

五、通過ORM操作數(shù)據(jù)庫

ORM查詢

示例:ORM查詢所有用戶

#orm查詢語法:models.表名.objects.all()   #查詢所有
###
ret = models.UserInfo.objects.all()
print(ret[0].id,ret[0].name)

在django項(xiàng)目中應(yīng)用操作:


后端執(zhí)行方法:

from django.shortcuts import HttpResponse, render, redirect
from app import models

def user_list(request):
    #去數(shù)據(jù)庫中查詢所有的用戶
    #利用ORM這個(gè)工具去查詢數(shù)據(jù)庫,不用自己去查詢
    ret = models.UserInfo.objects.all()
    
    # 打開user_list.html文件,
    return render(request, "user_list.html", {"user_list": ret})

前端HTML




    
    用戶列表頁



添加用戶


    
    
        id值
        用戶名
    
    
    

    {% for user in user_list %}
        
        {{ user.id }}
        {{ user.name }}
        
    {% endfor %}

    


路由urls.py配置:


from app import views  #導(dǎo)入項(xiàng)目

urlpatterns = [
    url(r'^user_list/',views.user_list)  #定義對(duì)應(yīng)路徑關(guān)系
]

ORM添加

#orm添加語法:models.表名.objects.create(name=new_name)  #ORM添加

示例:ORM添加用戶

models.UserInfo.objects.create(name=new_name)

路由urls.py配置:


from app import views  #導(dǎo)入項(xiàng)目

urlpatterns = [
    url(r'^user_list/',views.user_list),  #定義對(duì)應(yīng)路徑關(guān)系
    url(r'^user_add/',views.user_add),
    
]

后端執(zhí)行方法:

def user_add(request):
    if request.method == "POST":
        #用戶填寫新的用戶名,并發(fā)送POST請(qǐng)求
        new_name = request.POST.get('username',None)
        #去數(shù)據(jù)庫中創(chuàng)建一條用戶記錄
        models.UserInfo.objects.create(name=new_name)
        
        ##添加成功后返回展示網(wǎng)頁
        return redirect("/user_list/")
    
    #第一個(gè)請(qǐng)求頁面的時(shí)候,就返回一個(gè)頁面,頁面上有兩個(gè)框讓用戶填寫
    return render(request,"add_user.html")

前端執(zhí)行的方法:




    
    添加用戶




    

用戶名:              

         

             


ORM與原生SQL查詢

#原生SQL 
#查詢所有
select * from user;

##ORM語法:
models.user.objects.all()

###ORM條件語句查詢

#filter條件(SQL:where)
models.user.objects.filter(id=1)

#條件大于 
##SQL: SELECT * from user where id>1 and password='123'
#ORM gte
models.user.objects.filter(id__gt=1,password='123')

#條件 like語法
##ORM 
models.user.objects.filter(password__startswith='a')    #以a開頭 .這里對(duì)大小寫敏感,而SQL like不敏感

models.user.objects.fileter(username__icontains='a')    #對(duì)大寫不敏感的,即a,A都匹配

#SQL in 語句對(duì)比ORM語句
select ... where id in(1,2,3,4);

models.user.objects.filter(id__in=[1,2,3,4])

##ORM查詢?nèi)掌?models.user.objects.filter(register_date_month=5)
models.user.objects.filter(register_date_month=5)[0].register_date
#對(duì)比SQL語句
select ... where extract('month' from pub_date) = '12';


##ORM批量創(chuàng)建用戶
#有100個(gè)創(chuàng)建對(duì)象
objs = [models.user(title='name{}'.format(i)) for i in range(100)]

models.user.objects.bulk_create(onjs,10)    #這里是10個(gè)一提交,即每次創(chuàng)建10個(gè)用戶

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


新聞名稱:django--ORM入門到精通-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://weahome.cn/article/djodoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部