此版本為 django<2.0,以及搭配 SQLite 的範例,
如果使用 Django>2.0,請參考 django_2_and_mysql_5.7 branch
DataTables Example (server-side) - Python Django REST framework
- Youtube Demo - 建議看影片的 demo 說明
DataTables (server-side) 搭配 Django REST framework 簡單範例 📝
- 使用 Django REST framework 建立API。
- 搭配 DataTables 並且使用 server-side 增加使用者體驗。
- 搭配 Bootstrap 。
- 搭配 SQLite ( 10萬筆模擬資料 )。
請在你的命令提示字元 (cmd ) 底下輸入
安裝 Django
這邊請注意,django<2.0 ( django 請安裝小於 2.0 的版本)
pip install Django==1.11.20
pip install djangorestframework
pip install django-model-utils
或是使用 cmd (命令提示字元)
pip install -r requirements.txt
-
LOG 資訊非常重要,可以參考官網 django logging , 或是看範例裡面的 settings.py 裡面的 LOGGING。
-
建議透過 django-db-backends 來觀看目前的 orm 到底執行了什麼 SQL 指令,可以到範例裡面的 settings.py 找 django.db.backends。
使用命令提示字元 ( cmd ) 輸入下方指令
python manage.py runserver
然後瀏覽
-
從影片中的 demo 可以很明顯的看出當資料量很大(5 萬筆)的時候,如果沒有用 server-side 的方式,而是一次全部載入,使用者體驗非常差。
-
本範例前後端並沒有分離,而是寫在一起,比較好的方式,應該是前後端分離。
-
api document 可參考 api_document.html ,直接用瀏覽器開啟即可。 ( 文件教學可參考 aglio_tutorial )
因為有些人反映換成 MySQL 之後無法 work,所以我測試了一下,
步驟一,先要多安裝兩個套件,
安裝 PyMySQL
pip install PyMySQL
安裝 mysqlclient
pip install mysqlclient
( 這個有可能安裝不起來,我自己最後是去找 mysqlclient-1.4.2-cp36-cp36m-win32.whl 安裝成功 )
settings.py 要改成
......
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'demo',
'USER': 'root',
'PASSWORD': 'password123',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
......
也可參考之前的文章 Django 如何連結 MySQL,
這邊要特別注意,MySQL 我使用 5.7,如果使用 MySQL 8.0,會遇到 django.db.utils.OperationalError: (2059, )
的問題,原因是 MySQL 8.0 的密碼加密方式改成了 caching_sha2_password,要再自行修改,簡單一點就是使用
MySQL 5.7。
- Python 3.6.6
文章都是我自己研究內化後原創,如果有幫助到您,也想鼓勵我的話,歡迎請我喝一杯咖啡:laughing:
MIT license