6.后臺(tái)管理,添加,刪除,修改和查詢

后臺(tái)管理我用的是adminlte,也可以用其它后臺(tái)模板,后臺(tái)最好在創(chuàng)建一個(gè)app,分頁adminlte已經(jīng)寫好了,搜索也寫好了,好用的一批,

前臺(tái)的怎么用自行百度, adminlte有官方文檔,3.0版本好像沒有中文文檔,去看英文

增刪改查全部舉商品的例子

1.增加商品

實(shí)現(xiàn)流程:

超管來到后臺(tái)頁面可以對(duì)商品信息,用戶信息和訂單信息進(jìn)行增刪改查。以商品管理為例,點(diǎn)擊添加商品,彈出窗口可以填寫具體商品信息,點(diǎn)擊立刻添加即可添加商品信息。

圖4-28管理員添加商品圖.png

具體實(shí)現(xiàn)思路:

點(diǎn)擊添加商品按鈕,調(diào)用openIframe函數(shù),該函數(shù)的具體功能是打開一個(gè)窗口,在窗口里加載一個(gè)網(wǎng)頁,添加商品功能首先是圖片的處理,選擇圖片顯示在頁面<img>部分顯示,再用uuid函數(shù)處理成名字不重復(fù)的圖片,存到media文件夾下,判斷關(guān)鍵字段不為空后存到數(shù)據(jù)庫。上傳成功該頁面存在兩秒關(guān)閉,并且刷新商品管理頁面。

打開窗口函數(shù)核心代碼:

function openIframe(title, url, h, w) {
    if (title == null || title == '') {
        title = false;
    }
    if (url == null || url == '') {
        url = "404.html";
    }
    if (w == null || w == '') {
        w = ($(window).width() * 0.9);
    }
    if (h == null || h == '') {
        h = ($(window).height() - 50);
    }
    layer.open({
        type: 2,
        area: [w + 'px', h + 'px'],
        fix: false, //不固定
        maxmin: true,
        shadeClose: true,
        shade: 0.4,
        title: title,
        content: url
    });
}

管理員添加商品核心代碼:

@csrf_exempt
def manage_issue(request):
    flag = 0
    if request.method == "POST":
        goods_name = request.POST.get("goods_name")
        goods_detal = request.POST.get("goods_detal")
        goods_price = request.POST.get("goods_price")
        categorys = request.POST.get("categorys")
        transactionMode = request.POST.get("transactionMode")
        address = request.POST.get("address")
        pho_num = request.POST.get("pho_num")
        qq_num = request.POST.get("qq_num")
        wechat_num = request.POST.get("wechat_num")
        file_img = request.FILES.get('file_img')
        file_chunks = file_img.chunks()
        # /images/qwyuqguweuq.jpg
        file_name = os.path.join("images", do_file_name(file_img.name)).replace('\\', '/')
        # 完整的路徑
        file_path = os.path.join(settings.MEDIA_ROOT, file_name).replace('\\', '/')
        with open(file_path, "wb")as file:
            for chunk in file_chunks:
                file.write(chunk)
        new_issue = Goods()
        new_issue.name = goods_name
        new_issue.detal = goods_detal
        new_issue.price = goods_price
        new_issue.master_pho = pho_num
        new_issue.master_qqnum = qq_num
        new_issue.master_wechatnum = wechat_num
        new_issue.trading = transactionMode
        userid = 1
        new_issue.user = User.objects.get(id=userid)
        sort = Sort.objects.get(id=categorys)
        print(sort.__dict__)
        new_issue.sort = sort
        new_issue.img = file_name
        try:
            new_issue.save()
            flag = 1
        except Exception as e:
            print(e)
    return HttpResponse(flag)

3.修改商品

修改數(shù)據(jù)流程:

點(diǎn)擊表格操作欄下的第一個(gè)按鈕,進(jìn)入可以修改商品信息,用戶信息和訂單信息。頁面自動(dòng)加載出原來的信息,管理員輸入需要修改的信息,點(diǎn)擊保存按鈕,數(shù)據(jù)會(huì)存到后臺(tái)數(shù)據(jù)庫,兩秒后頁面自動(dòng)關(guān)閉,并且刷新頁面,以商品信息為例:

圖4-29管理員修改商品信息圖.png

具體實(shí)現(xiàn);

點(diǎn)擊右側(cè)修改按鈕,調(diào)用openIframe函數(shù)函數(shù),打開窗口加載頁面,加載的同時(shí)把商品id傳到該頁面,然后將商品的信息動(dòng)態(tài)顯示,需要注意的是圖片的加載方式{{ MEDIA_URL }}{{goods.img}},花括號(hào)前面部分是加載media文件的路徑,其中url映射為MEDIA_URL = '/media/'。點(diǎn)擊保存后將修改后的數(shù)據(jù)保存到數(shù)據(jù)庫。

核心代碼:

@csrf_exempt
def update(request):
    flag = 0
    if request.method == "POST":
        id = request.POST.get("id")
        goods_name = request.POST.get("goods_name")
        goods_detal = request.POST.get("goods_detal")
        goods_price = request.POST.get("goods_price")
        categorys = request.POST.get("categorys")
        transactionMode = request.POST.get("transactionMode")
        address = request.POST.get("address")
        pho_num = request.POST.get("pho_num")
        qq_num = request.POST.get("qq_num")
        wechat_num = request.POST.get("wechat_num")
        file_img = request.FILES.get('file_img')
        file_chunks = file_img.chunks()
        # 文件保存的路徑
        # /images/qwyuqguweuq.jpg
        file_name = os.path.join("images", do_file_name(file_img.name)).replace('\\', '/')
        # 完整的路徑
        file_path = os.path.join(settings.MEDIA_ROOT, file_name).replace('\\', '/')
        with open(file_path, "wb")as file:
            for chunk in file_chunks:
                file.write(chunk)
        twz = Goods.objects.get(id=id)
        twz.name = goods_name
        twz.detal = goods_detal
        twz.price = goods_price
        twz.master_pho = pho_num
        twz.master_qqnum = qq_num
        twz.master_wechatnum = wechat_num
        twz.trading = transactionMode
        sort = Sort.objects.get(id=categorys)
        twz.sort = sort
        twz.img = file_name
        try:
            twz.save()
            flag = 1
        except Exception as e:
            print(e)
    return HttpResponse(flag)

4.查詢商品

查詢流程:

管理員在右側(cè)搜索框輸入關(guān)鍵字,表格中顯示出匹配的數(shù)據(jù)。

核心代碼:這里的搜索用的是adminlte自帶的搜索,我給出我主頁模糊搜索給你們參考,改寫下即可:

def search(request):
    flag = 1
    key = request.GET.get("key")
    print("key" + key)
    nick_name = request.session.get('nick_name')
    goods_list = Goods.objects.filter(name__contains=key).order_by('-create_time')
    return render(request, 'index.html', {"goods_list": goods_list, "nick_name": nick_name})

5.刪除商品

刪除流程:

管理員點(diǎn)擊操作欄右側(cè)的刪除按鈕,刪除對(duì)應(yīng)數(shù)據(jù)。

實(shí)現(xiàn)思路和核心代碼:

該部分和購物車刪除功能實(shí)現(xiàn)思路類似,代碼不再給出。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,671評(píng)論 1 32
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,825評(píng)論 1 45
  • 1.幾種基本數(shù)據(jù)類型?復(fù)雜數(shù)據(jù)類型?值類型和引用數(shù)據(jù)類型?堆棧數(shù)據(jù)結(jié)構(gòu)? 基本數(shù)據(jù)類型:Undefined、Nul...
    極樂君閱讀 5,882評(píng)論 0 106
  • 2018年4月 形象照新鮮出爐 贊贊贊! 2018蛻變年、突破年、奮斗年、成長(zhǎng)年.……總之,心有所指 所向披靡!干...
    南鑫_0f5f閱讀 184評(píng)論 0 0
  • 摘自日記——跑步(東京篇) 2015-12-08 09:10:16 今天是8號(hào),而我一大早在補(bǔ)6號(hào)的日記(捂臉)。...
    赤樂君閱讀 711評(píng)論 2 0

友情鏈接更多精彩內(nèi)容