djangoMTV初探

1.restful请求方式
一个视图对应多个操作(增删改查)
djangoMTV初探_第1张图片
djangoMTV初探_第2张图片
djangoMTV初探_第3张图片
djangoMTV初探_第4张图片

djangoMTV初探_第5张图片
老的方式
djangoMTV初探_第6张图片
djangoMTV初探_第7张图片

views.py

from django.shortcuts import render
from django.http import HttpResponse,request,QueryDict, JsonResponse
from myapp.models import User
from django.views.generic import View
# Create your views here.
def user(request):
    if request.method == "GET":
        return HttpResponse("获取用户")
    elif request.method == "POST":
        name = request.POST.get('name')
        city = request.POST.get('city')
        sex = request.POST.get('sex')
        age = request.POST.get('age')
        User.objects.create(
            name=name,
            city=city,
            sex=sex,
            age=age
        )
        return HttpResponse("创建用户成功!")
    elif request.method == "PUT":
        data = QueryDict(request.body)
        id = data.get('id')
        user_obj = User.objects.get(id=id)
        user_obj.city = data.get('city')
        user_obj.sex = data.get('sex')
        user_obj.age = data.get('age')
        user_obj.save()
        # 方式2
        # data = {'city': data.get('city'), 'sex': data.get('sex'), 'age': data.get('age')}
        # User.objects.filter(id=id).update(**data)
        res = {'code': 200, 'msg': '更新成功!'}
        return JsonResponse(res)
    elif request.method == "DELETE":
        # request有GET和POST,没有DELETE和PUT
        data = QueryDict(request.body)
        id = data.get('id')
        try:
            User.objects.get(id=id).delete()
            res = {'code': 200, 'msg': '删除用户成功!'}
        except Exception:
            res = {'code': 500, 'msg': '删除用户失败!'}

        return JsonResponse(res)#返回的是json对象,httpresponse返回的是字符串

def user_edit(request):
    id = request.GET.get('id')
    user_obj = User.objects.get(id=id)
    return render(request, 'user_edit.html', {'id': id, 'user': user_obj})

def user_add(request):
    return render(request, 'user_add.html')

def user_list(request):
    user_list = User.objects.all()
    return render(request,'user_list.html',{'user_list': user_list})
# 上面是老式的api请求方式,

user_list.html




    
    列出所有用户
    




        {% for i in user_list %}
        
        {% endfor %}
    
ID 姓名 城市 性别 年龄 操作
{{ i.id }} {{ i.name }} {{ i.city }} {{ i.sex }} {{ i.age }}

user_edit.html




    
    编辑用户
    


编辑用户

姓名:
城市:
性别:
年龄:

user_add.html




    
    创建用户


创建用户

姓名:
城市:
性别:
年龄:

myapp/urls.py

from django.contrib import admin
from django.urls import path,include
from myapp import views

urlpatterns = [
    path('user/',views.user),
    path('user_list/',views.user_list),
    path('user_add/',views.user_add),
    path('user_edit/', views.user_edit)
]

djangoMTV初探_第8张图片
上述是函数视图,if多分支的方式。

用django的类进行替换。

你可能感兴趣的:(sqlite,数据库)