1. 程式人生 > >【慕課網】強力Django和殺手級xadmin學習筆記

【慕課網】強力Django和殺手級xadmin學習筆記

慕課網
強力Django和殺手級xadmin學習筆記
2018年6月

3-2

這裡寫圖片描述

3-3

  • 指定主鍵
    • primary_key = True
    • 這裡寫圖片描述

3-5

  • 在url中指定別名url(r'^form/$',getform,name = 'go_form'
    在 template中 {% url 'go_form' %}

4-3

  • 繼承django的user表
    python
    from django.contril.auth.models import AbstractUser
    class UserProfile(AbstractUser):
    ___

4-8

  • app加入到搜尋路徑內
    在setting中
    sys.path.insert(0,os.path.join(BASE_DIR,'apps'))

5-2

5-5

  • 後臺資料庫顯示中文
    在app的apps.py 中:
    class 中新增 verbose_name = "中文名稱"
    然後在該app的init.py 中新增:
    default_app_config = "database.apps.DatabaseConfig"
    其中 DatabaseConfig 為 apps.py 中的class名,database為app名

6-7

  • 註冊或登入圖片驗證碼功能
    • django-simple-captcha(github上搜索)

7-3/7-4

  • 上傳檔案地址設定
    在model裡有imgField欄位,上傳路徑在哪設定呢
    在setting中新增:
    python
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR,"media")
  • 要在template中使用media,如url ="{{ MEDIA_URL }}{{ app.img }}"
    需要在setting的template中新增:
    django.core.context_processors.media
    還要在url中做配置:
from django.views.static import
serve from MxOnline.setting import MEDIA_ROOT url(r'^media/(?P<path>.*)$',serve,{"document_root":MEDIA_ROOT})

7-5

  • 分頁開發庫 django -pure -pagination(github搜尋)

7-7

  • 當前臺的一個表和後端資料庫一個表的屬性很相似時,可以直接將class表,轉換為前臺的form
    python
    from django import forms
    class AnotherUserForm(forms.ModelForm):
    class Meta:
    model = UserAsk # 自己的class表
    field = ['name','mobile','course_name'] # 自定義欄位

    然後在view中直接呼叫save(commit=True)即可更新到資料庫,非常省事,具體參見7-7和10-4的末尾部分視訊

7-8

  • 非同步請求,返回Json Ajax重新整理
    return HttpResponse("{a:b}",content_type = "application/json")

7-9

  • 資料庫反向取資料
    外來鍵 A = models.ForeignKey(B)
    可以通過 B.A_set 類似形式,反向取到指向B的A的所有資料。

8-1

  • 如果一個欄位是choice型別
    則在html頁面中用get_choice_dispaly 顯示
    例如:

    A =  model.CharField(choices = (("cj","初級"),("gj","高階")))
    
    {{ classname.get_A_dispaly }}

10-1

  • 在html中 request.path 可以提取到當前頁面的路徑,相對路徑,可以根據路徑對某些按鈕或標籤做出相應狀態。
    {{% if request.path | slice:'7' == '/course' %}}
    做出判斷

10-2

  • 在view中,查詢資料庫,或的功能,比如篩選出name=name的或者email=email的,用到或的功能

    import django.db.models import Q
    
    all_courses = all_courses.filter(Q(name==name) | Q(email = email) )

11-1

  • 登出功能

    class LogoutView(View):
    def get(self,request):
    logout(request) # django自帶函式
    from django.core.urlresolvers import reverse
    return HttpResponseRedirect(reverse("index")) # 反解出網址

12-2

這裡寫圖片描述
這裡寫圖片描述