django初步瞭解2

django初步瞭解2

表的字段增刪改查

新增的字段
                1.直接提供默認值 default
                2.設置改字段能夠爲空 null=True
            注意的是 不要輕易的註釋models.py中任何跟數據庫相關的代碼
            主要是跟數據庫相關的代碼 你在處理的時候必定要當心謹慎

數據的增刪改查

數據的查
        get() 
        1.條件存在的狀況下 獲取的直接是數據對象自己
        2.條件不存在的狀況下 會直接報錯  因此不推薦你使用get方法查詢數據

        filter()
        1.條件存在的狀況下 獲取到的是一個能夠當作列表的數據 列表裏面放的纔是一個個數據對象自己
        2.條件不存在的狀況下  並不會報錯 返回的是一個能夠當作空列表的數據
        3.filter括號內能夠寫多個參數逗號隔開  這多個參數在查詢的時候 是and關係
        4.filter的結果支持索引取值  可是不支持負數  而且不推薦你使用索引  推薦你使用它封裝好的方法 first取第一個數據對象
        
數據的增
        1.create()
        1.括號內些關鍵字參數的形式 建立數據
        2.該方法會有一個返回值 返回值就是當前對象自己
        2.利用對象點方法的方式
        user_obj = User(username='jason')
        user_obj.save()  # 將當前對象保存到數據庫中
       
數據的改
        1.先查詢出來,而後.取值直接賦值,以後save()保存
        2.用updata(修改的鍵=修改的值)

數據的刪
        1.先查詢出數據對象,以後調用.delete()方法刪除
        2.不能直接用models.users.objects.delete(),爲了安全起見,先查再刪

反向解析和分組

根據某一個東西 動態解析出一個結果 該結果能夠直接訪問對應的url
    
    url(r'^test_add/', views.testadd,name='xxx')
    
    前端解析
        {% url 'xxx' %}
    
    後端解析
        from django.shortcuts import render,HttpResponse,redirect,reverse
        url = reverse('xxx')
    
    
    無名分組反向解析
        url(r'^test_addsajdsjkahdkjasjkdh/(\d+)/', views.testadd,name='xxx'),
        
        前端解析
            <a href="{% url 'xxx' 1 %}">222</a>
        
        後端解析
            url = reverse('xxx',args=(1,))
    
    有名分子反向解析
        url(r'^test_addsajdsjkahdkjasjkdh/(?P<year>\d+)/', views.testadd,name='xxx'),
        前端解析
            <a href="{% url 'xxx' 1 %}">222</a>
            
            <a href="{% url 'xxx' year=1 %}">222</a>
        
        後端解析
            url = reverse('xxx',args=(1,))
            
            
            url = reverse('xxx',kwargs={'year':123})
            
  注意 反向解析的別名 必定不要重複

路由分發

django裏面的app能夠有本身的static文件,templates文件夾,urls.py(******)   

    項目名下面的urls.py再也不作路由與視圖函數對應關係
    而是作一箇中轉站  只負責將請求分發到不一樣的app中 
    而後在app的urls.py完成路由與視圖函數的對應關係
    from django.conf.urls import url,include

    url(r'^app01/',include(app01_urls)),
    url(r'^app02/',include(app02_urls))

名稱空間

總路由
        url(r'^app01/',include('app01.urls',namespace='app01'))
        url(r'^app02/',include('app02.urls',namespace='app02'))
        
        print(reverse('app01:index'))
        print(reverse('app02:index'))
    
    
    一般狀況下 起別名的時候 前面能夠加上你的應用名

僞靜態

將動態網頁僞裝成是靜態的
    這樣作的目的是爲了提升搜索引擎的SEO查詢優先級
    搜索在收錄網站的時候 會優先收錄看上去像是靜態文件的資源
    
    可是不管你怎麼使用僞靜態進行優化 你也幹不過RMB玩家

虛擬環境

一般針對不一樣的項目 只會安裝該項目所用的模塊 用不到的一律不裝
    
    
    不一樣的項目有專門的解釋器環境與之對應
    
    每建立一個虛擬環境 就相似於從新下載了一個純淨的python解釋器
    
    虛擬環境不要建立太多個
相關文章
相關標籤/搜索