Django 创建管理员应用(对客户信息进行增删改查)

创建管理员应用:

python manage.py startapp mgr

创建处理url请求文件:

bysms/mgr/customer.py

# 开发人:龙技术
# 个人训练
# 开发时间:2021/8/29 12:27
from django.http import  JsonResponse
import json
def dispatcher(request):
    #将请求参数统一放入request的params属性中,方便后续处理

    #GET请求 参数在request对象的GET属性中获取
    if request.method=='GET':
        request.params=request.GET
    #POST/PUT/DELETE请求 参数从request对象的body属性中获取:
    elif request.method in ['POST','PUT','DELETE']:
        #根据接口,POST/PUT/DELETE请求的消息都是json格式
        request.params=json.loads(request.body)

    #根据不同的action分派给不同的函数进程处理
    action=request.params['action']
    if action=='list_customer':
        return listcustomers(request)
    elif action=='add_customer':
        return addcustomer(request)
    elif action=='modify_customer':
        return modifycustomer(request)
    elif action=='del_customer':
        return deletecustomer(request)
    else:
        return JsonResponse({'ret':1,'msg':'不支持该类型http请求'})

在bysms/urls.py中添加路由:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('sales/',include('sales.urls')),
    path('api/mgr/',include('mgr.urls'))

]

新建管理员应用路由文件:

bysms/mgr/urls.py

from mgr import  customer
from django.urls import path

urlpatterns = [
    path('customers',customer.dispatcher),
]

查看数据库信息:

添加listcustomers()函数:

bysms/mgr/customer.py

# 开发人:龙技术
# 个人训练
# 开发时间:2021/8/29 12:27
from django.http import  JsonResponse
import json
from common.models import Customer
def dispatcher(request):
    #将请求参数统一放入request的params属性中,方便后续处理

    #GET请求 参数在request对象的GET属性中获取
    if request.method=='GET':
        request.params=request.GET
    #POST/PUT/DELETE请求 参数从request对象的body属性中获取:
    elif request.method in ['POST','PUT','DELETE']:
        #根据接口,POST/PUT/DELETE请求的消息都是json格式
        request.params=json.loads(request.body)

    #根据不同的action分派给不同的函数进程处理
    action=request.params['action']
    if action=='list_customer':
        return listcustomers(request)
    elif action=='add_customer':
        return addcustomer(request)
    elif action=='modify_customer':
        return modifycustomer(request)
    elif action=='del_customer':
        return deletecustomer(request)
    else:
        return JsonResponse({'ret':1,'msg':'不支持该类型http请求'})

def listcustomers(resquest):
    #返回一个QuerySet对象,包含所有表记录:
    qs=Customer.objects.values()

    #将QuerySet对象转化为list类型
    #否则不能被转化为JSON字符串
    retlist=list(qs)

    return JsonResponse({'ret':0,'retlist':retlist})

添加用户信息:

创建addcustomer()函数:

#添加客户信息:
def addcustomer(request):

    #获取请求的具体信息
    info = request.params['data']

    #从请求信息中获取要添加客户的信息
    #并插入到数据库中
    record=Customer.objects.create(
        name=info['name'],
        phonenumber=info['phonenumber'],
        address=info['address'],
        qq=info['qq']
    )
    return JsonResponse({'ret':0,'id':record.id})

临时取消CSRF校验:

在bysms/bysms/settings.py里面的MIDDLEWARE中注释掉’django.middleware.csrf.CsrfViewMiddleware’:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

修改客户信息:

创建modifycustomer()函数:

def modifycustomer(request):
    #从请求消息中获取修改客户信息
    #找到该客户,并且进行修改操作
    customerid=request.params['id']
    newdata=request.params['newdata']

    try:
        #根据id从数据库中找到相应的客户记录
        customer=Customer.objects.get(id=customerid)
    except Customer.DoesNotExist:
        return {
            'ret':1,
            'msg':f'id为{customerid}的客户不存在'
        }
    if 'name' in newdata:
        customer.name=newdata['name']
    if 'phonenumber'in newdata:
        customer.phonenumber=newdata['phonenumber']
    if 'address' in newdata:
        customer.address=newdata['address']
    if 'qq' in newdata:
        customer.qq=newdata['qq']

    #注意,一定要执行save才能将数据修改保存到数据库
    customer.save()

    return JsonResponse({'ret':0})

删除客户信息:

创建deletecustomer()函数:

def deletecustomer(request):
    customerid=request.params['id']

    try:
        #根据id从数据库中找到相应的客户信息:
        customer=Customer.objects.get(id=customerid)
    except Customer.DoesNotExist:
        return {
            'ret':1,
            'msg':f'id为{customerid}的客户不存在'
        }

    #delete方法将该记录从数据库中删除:
    customer.delete()

    return JsonResponse({'ret':0})

下载前端静态界面文件

在官网(http://www.byhy.net/tut/webdev/django/07/)上下载z_dist文件

保存在项目文件根目录下

添加静态文件路由:

bysms/bysms/urls.py:

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

#静态文件服务
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('sales/',include('sales.urls')),
    path('api/mgr/',include('mgr.urls'))
]+ static('/',document_root='./z_dist')

进入管理员界面:

127.0.0.1/mgr/index.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值