创建应用
创建一个应用vacation
1 | python3 manage.py startapp vacation |
在setting.py下添加
'vacation.apps.VacationConfig'
1 |
|
在vacation下的model.py下添加
1 | from django.db import models |
执行:
1 | python3 manage.py makemigrations vacation |
创建序列化类
在vacation下创建serializers.py
1 | from rest_framework import serializers |
编写视图
vacation/views.py1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.renderers import JSONRenderer
from rest_framework.parsers import JSONParser
from vacation.models import Snippet
from vacation.serializers import VacationSerializer
# Create your views here.
def vacation_list(request):
"""
列出所有已经存在的vacation
"""
if request.method == 'GET':
snippets = Snippet.objects.all()
serializer = VacationSerializer(snippets, many=True)
return JsonResponse(serializer.data, safe=False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = VacationSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
vacation/urls.py:
1 | from django.conf.urls import url |
根目录/urls.py
1 | from django.contrib import admin |
访问:http://127.0.0.1:8000/api/vacation/
在vacation下的admin.py添加
1 | from django.contrib import admin |
访问:http://127.0.0.1:8000/admin
数据库操作–查询
查询所有
view.py
1 |
|
urls.py
1 | from django.conf.urls import url |
访问:http://127.0.0.1:8000/api/vacation/list/
根据id查询
view.py
1 |
|
urls.py
1 | from django.conf.urls import url |
访问:http://127.0.0.1:8000/api/vacation/id/?id=1
更新数据
根据id更新数据
view.py
1 |
|
urls.py
1 | from django.conf.urls import url |
访问:http://127.0.0.1:8000/api/vacation/update?id=1&title=端午
增加数据
view.py
1 |
|
urls.py
1 | from django.conf.urls import url |
访问:http://127.0.0.1:8000/api/vacation/insert/?title=端午&area=北京&count=True
删除数据
view.py
1 |
|
urls.py
1 |
|
访问:http://127.0.0.1:8000/api/vacation/delete/?id=1
不用操作sql直接就可以操作数据库确实很方便,但是我就想写sql,怎么办?
直接写sql
1 |
|
1 | from django.conf.urls import url |