1.1 前后端分离前
1.2 前后端分离前存在的一些问题
• PC、APP、Pad等多端流行 • 前后端开发职责不清晰:各司其职,最大程度减少开发难度,方便协作 • 开发效率问题,一般后端开发需先等前端页面准备好,有时前端也一直配 合后端,能力受限 • 前后端代码混在一起,日积月累,维护成本增加 • 后端开发语言和模板耦合
1.3 前后端分离开发模式
1.1 什么是RestfulAPI: • REST(Representational State Transfer,表征状态转移)是一种Web服务的软件架构风格。 描述网络中客户端与服务端的一种交互方式,它本身不常用,常用的是如何设计RestfulAPI (REST风格的网络接口) • RestfulAPI风格就是把所有的数据都当做资源,对表的操作就是对资源操作 • 资源就是指的URL,基于URL对资源操作,Web服务在URL上支持一系列请求方法,如下表所 示。
1.1 Django工作流程
1.2 django案列创建一个用户信心管理实现增删改查
1.3.1 首先使用Pycharm创建一个新项目
1.3.2 创建应用myapp
python manage.py startapp myapp
1.3.3 myapp/models.py编写数据模型
from django.db import models
# Create your models here.
class User(models.Model):
name = models.CharField(max_length=30)
city = models.CharField(max_length=30)
sex = models.CharField(max_length=30)
age = models.IntegerField()
1.3.4 user_info项目重的settings.py中注册myapp
1.3.5 user_info 路由urls.py中定义myapp的路由
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls'))
]
1.3.6 同步数据库
python manage.py makemigrations python manage.py migrate
1.3.7 定义应用myapp路由urls.py
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
# path('user/', views.user),
path('user/', views.UserView.as_view()),
path('user_add', views.user_add),
path('user_edit', views.user_edit)
]
1.3.8 定义myapp试图views.py
from django.shortcuts import render
from django.http import HttpResponse, QueryDict, JsonResponse
from .models import User
from django.views.generic import View
def user_add(request):
return render(request, 'user_add.html')
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(request):
# if request.method == "GET":
# if request.GET.get('id'):
# pass
# # user_obj = User.objects.get(id=request.GET.get('id'))
# # res = {'code': 200, 'msg': '成功!', user_obj: user_obj}
# # return JsonResponse(res)
# else:
# user_list = User.objects.all()
# return render(request, 'user_list.html', {'user_list': user_list})
# 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":
# 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)
class UserView(View):
def get(self, request):
if request.GET.get('id'):
pass
# user_obj = User.objects.get(id=request.GET.get('id'))
# res = {'code': 200, 'msg': '成功!', user_obj: user_obj}
# return JsonResponse(res)
else:
user_list = User.objects.all()
return render(request, 'user_list.html', {'user_list': user_list})
def post(self, request):
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("创建用户成功!")
def put(self, request):
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)
def delete(self, request):
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)
1.3.9 创建添加、编辑、获取用户信息前端html
添加
创建用户
获取
列出所有用户
姓名
城市
性别
年龄
操作
{% for i in user_list %}
{{ i.name }}
{{ i.city }}
{{ i.sex }}
{{ i.age }}
{% endfor %}
1.3.10 编辑
编辑用户
编辑用户