文檔鏈接[https://docs.djangoproject.com/zh-hans/4.2/](https://docs.djangoproject.com/zh-hans/4.2/)
安裝django環境
```
python -m pip install Django
python -m pip install Django==4.0
```
創建項目
```
D:\tools\Python\Anaconda\envs\python3.10.6\Scripts\django-admin.exe startproject app
```
pycharm 創建項目

創建模塊
```
D:\tools\Python\Anaconda\envs\python3.10.6\python.exe manage.py startapp admin
```
mysql擴展安裝
```
python -m pip install mysqlclient
```
數據庫遷移
```
D:\tools\Python\Anaconda\envs\python3.10.6\python.exe manage.py makemigrations
```
```
D:\tools\Python\Anaconda\envs\python3.10.6\python.exe manage.py migrate
```
添加表注釋
```
D:\tools\Python\Anaconda\envs\python3.10.6\python.exe -m pip install addcomments
INSTALLED_APPS = [
"addcomments",
]
D:\tools\Python\Anaconda\envs\python3.10.6\python.exe manage.py addcolumncomments
```

Django-restframework安裝
```
D:\tools\Python\Anaconda\envs\python3.10.6\python.exe -m pip install djangorestframework
INSTALLED_APPS = [
"rest_framework",
]
```
```
~~~
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import ListModelMixin
from rest_framework.viewsets import ViewSetMixin
from admin.models import Admin as AdminModel
from rest_framework import serializers
from rest_framework.pagination import PageNumberPagination, LimitOffsetPagination, CursorPagination
class AdminSerializers(serializers.ModelSerializer):
class Meta:
model = AdminModel
fields = '__all__'
class CommonPageNumberPagination(PageNumberPagination):
# 有4個類屬性
# 每頁顯示條數
page_size = 20
# 分頁查詢的那個參數 ?page=10
page_query_param = 'page'
# ?page=3&size=3 查詢3頁,每頁查詢3條
page_size_query_param = 'size'
# 可以通過size控制每頁顯示的條數,但是通過這個參數控制最多顯示多少條
max_page_size = 1000
class Admin(ViewSetMixin, GenericAPIView, ListModelMixin):
queryset = AdminModel.objects.all()
serializer_class = AdminSerializers
# pagination_class后面是我們自己寫的類,只不過在導入的時候我們重新命名了
pagination_class = CommonPageNumberPagination
~~~
```
django-filter模糊查詢
~~~
D:\tools\Python\Anaconda\envs\python3.10.6\python.exe -m pip install django-filter
~~~