【慕課網】強力Django和殺手級xadmin學習筆記
阿新 • • 發佈:2019-01-06
慕課網
強力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