精华内容
下载资源
问答
  • 网上商城建设意义

    千次阅读 2014-01-24 17:26:28
    系统管理员可以灵活的设计符合该单位要求的信息处置业务流程。例如,利用上面所述权限分配模式。...网上商城建设意义 用以提高商业交易的效率、范围, 网上商城 以在线交易、客户服务为核心。降低人工、经营
    系统管理员可以灵活的设计符合该单位要求的信息处置业务流程。例如,利用上面所述权限分配模式。如果新闻的发布不需要审核过程,可以把新闻录入和审核的权限全部赋予同一个人,由他自己录入自己审核;当以后流程改变,需要审核时,可以把这个人的审核权取消后赋予另一个高级别的人,这样,就实现了需要的审核流程。
    网上商城建设意义
    用以提高商业交易的效率、范围, 网上商城 以在线交易、客户服务为核心。降低人工、经营本钱,这对于全面推进企业的信息化网络化具有重要意义。
    增强企业与客户之间的亲和力,1 网上商城 有利于树立和提高企业形象。提高企业对客户的服务水平及客户服务效率,同时大幅提高企业员工的信息化水平。
    把企业的客户服务提高到一个新的高度,2 网上商城 能很好地为客户提供在线咨询及反馈。增强客户与企业交流与沟通的能力,协助企业以更快的速度了解客户需求,同样客户也能从 网上商城 快捷地获得企业对产品的售前及售后服务。
    客户实现足不出户完成对产品的浏览、购买意向以及与企业进行产品交易行为,3 网上商城 一个重要的目的就是提供在线交易服务。为客户与企业之间形成互通及企业内部办公自动化,最终构建企业 “ 电子商务 ” 打下坚实基础。
    因而抓住时机实施网上商城,4 信息网络正在生长为 “ 第四媒体 ” 将成为人们获得信息的实现社会多种功能的主要载体。可以改变企业的信息化建设、产品销售和客户服务在激进方式下人力资源的比重失调,极好地体现企业在行业领域的知名度及企业的信息资源。
    引导和形成新的消费热点与观念,网上商城有助于行业建议产品及信息资源的市场价值。从而带动企业产品在业界的品牌与地位,营造有利于企业生存与发展环境,加速企业信息化发展。考虑到网上商城实施的广度、难度及不同行业的需求情况,网上商城在实施中应该由易而难,逐步扩充与完善的方式进行。
    网上商城建设需求
    企业网站原有的简单的企业宣传和信息发布功能已经远落后于现在时期对电子商务的功能需求。现在网络信息化深入到人们生活的每一个角落,随着全球信息化进程的不时发展和深入。人们对于在网络上寻求信息和服务早以不是停留在简单的信息获取上,人们更多的需要在网上实现便利的实际的可交互式的网络操作服务功能。
    人们已经满意足于简单信息的单向获取企业信息,对于一个电子化企业商务网站而言。人们更迫切需要的能够在网上实现互动的交流及足不出户地购买产品,向企业发表自己的意见、服务需求及有关投诉,并且通过网站的交互式操作向企业进行产品的咨询及得来相应的反馈及技术支持服务。因此,网上商城工程,应本着上述具体需求,系统的设计上突出体现实用的服务性功能,建立一个实用、适用的可交互的综合网上商务服务平台。
    网上商城设计目标
    使之在视觉效果上更美观、更能够突出科技感以及更符合企业的形象定位。 针对整个企业网站进行精心的形象设计定位。
    使之更符合实际网上交易的需要,规划整个系统的功能。增加各种产品咨询、技术支持功能、信息检索功能、互动交流功能等。
    使用户在网站上能够进行更方便的操作,对系统的用户操作流程进行规划。使用户能够更加简单方便的获取到所需要的信息,适合社会上不同消费层面的客户。
    适合分散到企业各部门对各自的分系统内容进行管理和更新。 多样的分布式的管理系统。
    保证数据的绝对平安。 对于敏感信息和数据的操作采用 SSL 加密传输。
    保证提供高质量的网络服务。 具有更高的网络平安性和运行效率。
    提供更加良好的客户、供销商关系管理模式。 优化产业结构。
    即企业利用网络技术进行企业管理和市场动作时,实现信息的集成化管理。对各类数据控制和统计等的管理工作,信息的集成化管理是指管理端而言。
    WebShop 网上商城设计原则:
    给目标客户提供方便、实用的信息服务,为了实现网站商务功能最大化的目标。设计该平台时,充分考虑了以下方面:
    先进性:
    为客户设计高先进性的网站系统。设计方案将立足先进技术,以最先进的观点和设计思路。使项目具备国内乃至国际领先的水平。服务器和网络方面以优化通讯流量,提高系统的管理性和平安性为重点。
    可持续性:
    由于面对的广泛的全球互联网客户,该平台正常运作后。因此系统应能够提供每天 24 小时,每周 7 天的不间断运作能力。为客户提供高度可持续增长的稳定运行保证。
    平安性:
    网上进行各种商务活动,互联网是一个标准开放的网络。随时可能将面对黑客的攻击,病毒的侵袭等。因此,确保网上信息流通的系统平安十分重要。平安不只仅是一个技术的问题,还涉及到系统的管理、法律法规的保证等。会做到保证系统数据和信息安全,为业务及商务提供平安环境。
    可扩展性:
    没有人可以确切预计系统的最终访问量和最佳的商务运行模式。因此系统设计的原则之一是可扩展性。随着企业网上平台业务量的扩展和平台访问量的增长,互联网具有巨大的商务潜能。系统应该能够具有很强的扩展能力,以适应新业务的发展。规范性和开放性:所有顺序及接口具有统一的规范,使顺序和系统具备优异的可移植性。企业网上平台的设计应当严格遵守国际规范,还没有形成规范的新领域内也积极建议规范的形成,为促进地区国际贸易打下坚实的基础。
    美观性:
    良好的视觉效果强大的功能同等重要。可以突出企业文化特色和定位。
    服务性:
    以为客户提供最好的服务为网站的设计思路。
    实用性:
    真正能够使网站为用户带来方便。
    便当性:
    尽可能地适应不同年龄、知识层次的群众的需求。
    定制性:
    为企业的不同业务定制相应的业务流程。
    交互性:
    以及友好的对话关系,各项在线服务的提供。极大的改善企业的办事效率和形象。
    宣传性:
    使之成为企业自身宣传的重要载体。 提供良好的实用的宣传功能。
    WebShop 网上商城主要功能
    网上商城的功能建设从宏观上可以分为三个阶段:
    1 .企业形象
    建立企业在行业中品牌形象,利用互联网。网上发布企业动态、行业信息,用户可以通过互联网检索企业产品并浏览。这部分具有如下的应用功能:
    静态介绍性图文信息
    简单的信息发布功能
    信息采集
    必需经过事先处置和授权,信息处置:所有的操作都有权限控制。权限可以由管理员修改
    主要是各分支机构的职能介绍、办公地址等
    完整的后台系统管理
    2 .客户服务
    增加与客户沟通渠道,实现在线的交流功能。使网站成为企业为客户服务的一个便捷的窗口。人们可以通过网络完成各种产品咨询、反馈与投诉、技术支持、下载服务等功能。将实现如下主要功能:
    企业动态信息、新闻采编发布系统
    网上咨询反馈及投诉系统
    网上调查系统
    网上综合信息查询系统
    相关下载服务系统
    论坛系统
    会员系统
    功能强大的综合后台管理系统
    3 .电子商务应用
    完成第1和第2阶段企业 网站建设 基础上,积极组建一个具有平安性、通用性和完整性的功能强大、多应用的信息系统尤为重要。主要实现以下扩展应用功能(不同企业采用的商务应用系统各异) :
    产品发布展示系统;
    人力资源系统;
    线购物车及下订单系统;
    订单处置系统;
    客户订单查询系统;
    竞价拍卖系统;
    与企业 ERP 系统信息交换(如库存)
    平安方案
    此平台上将会涉及诸如个人信息、公司信息、银行帐号、机密设定等敏感性问题,系统中采用多种平安机制如 SSL 和应用系统自身的身份验证和授权来对数据的平安性和失密性进行保证。因为整个平台是一个严谨的商务服务平台。因此必需对整个系统做全面的平安性考虑,对所有的敏感会话进行高强度加密。此系统中,针对会话层将采取 SSL 加密协议。
    Internet 上有几种加密协议在使用,目前。对应 OSI 网络模型的每一层都已提出了相应的协议。对应用层有 SET 平安电子交易 ) 协议。对会话层有 SSL 平安套层 ) 协议。所有的协议中, SSL 和 SET 与电子商务的关系最为密切。
    由著名的 Internet 先驱 NetscapeCommun 提出的针对数据的隐秘性 / 完整性 / 身份的确认 / 开放性的平安规范机制。 Netscap 公司已经把 SSL 协议递交给 W3C 网络平安工作小组以便使之成为万维网应用的平安规范。尽管使 SSL 协议成为规范还需要一段时间,SSL Secur   Socket Layer Protocol 网络资料传输的平安协定。但 SSL 协议事实上已被大部分万维网软件生产商所采用。 SSL 协议能很好地解决身份验证、信息失密、信息完整等网络信息传输过程中最为关键的平安失密问题。 SET Secur Electron Transact 平安电子交易规格,由著名的信用卡机构 VISA 及 MasterCard 提出的针对电子钱包 / 商场伺服器 / 认证中心的平安规范。由于 Visa 与 MasterCard 强大实力,以及得到 IBM Microsoft 等业界巨人的支持, SET 协议得到业界的广泛支持。
    后台权限管理
    拥有一个完善的后台管理系统是必不可少的也是管理和维护该网站的核心所在而后台权限综合管理模块则是后台管理系统的关键。 对一个大的网上商城而言。
    采用严格的身份验证和多级权限管理,网上商城的后台管理员系统中。各部门的权限分别有的相应帐号,登录后只能使用自己权限范围内的功能模块,对于其他越权操作将无法进行。保证整个系统的后台管理平安与规范。
    采用类似 Window NT 权限组的模式来管理和划分所有的后台权限。 网上商城权限管理模块中。
    前提是对所有的权限细分。设计整个后台管理模块时,首先。每个子模块都尽量根据需要将权限完全的细分。例如,新闻的管理权限就细分为录入、修改、删除、审核、发布等。
    系统管理员根据本单位的具体情况,其次。建立合理的权限组和相应的帐号。管理员可以对权限组进行命名,便于管理。为了方便理解,可以把权限组理解为一个具体的部,或者一个科。权限组的设立是为了方便批量分配权限。
    展开全文
  • 网上商城

    2020-06-24 12:50:09
    网上商城 1.引言 随着社会的不断发展,科学技术也在不断的更新。Internet作为新型的工具,他的迅速发展为商业界听欧诺个了更多广阔的信息平台与更多的商机,如催化剂一般刺激着商业经济的快速发展。因此选择设计开发...

    网上商城

    1.引言
    随着社会的不断发展,科学技术也在不断的更新。Internet作为新型的工具,他的迅速发展为商业界听欧诺个了更多广阔的信息平台与更多的商机,如催化剂一般刺激着商业经济的快速发展。因此选择设计开发一个企业门户网站拥有重要的意义
    因此本次我打算开发一个网上商城。网上商城是前端使用bootstrap框架,后台使用Python制作的类淘宝的网上商城,同样实现了电子商务平台应有的基本功能,如:首页商品展示,商品详情信息,用户注册,修改用户信息,地址管理模块,购物车模块,订单结算模块。整个系统都是围绕这几个模块展开设计的。用户可以很好的浏览商品和选购商品,选择更优质、更实惠的商品。

    2.系统结构
    2.1.系统流程
    用户登录系统后,有不同的使用功能,主要功能流程图如下所示:

    图 2-1系统流程图django
    2.2.系统主要框架
    2.2.1.Django
    Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性 [2] 。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:

    1.用于创建模型的对象关系映射;
    2.为最终用户设计较好的管理界面;
    3.URL 设计;
    4.设计者友好的模板语言;
    5.缓存系统。

    图 2-2 Flask框架过程图
    2.2.2.Mysql
    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理
    MySQL的特点
    MySQL体积小 、使用成本低 、可移植性强 、适用用户范围广
    1) MySQL是开源的,所以你不需要支付额外的费用。
    2) MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
    3) MySQL使用标准的SQL数据语言形式。
    4) MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
    5) MySQL对PHP有很好的支持,PHP是目前最流行的Web开发语言。
    6) MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
    7) MySQL是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

    图 2-3 SQLAlchemy架构图

    系统功能
    2.3.
    2.3.1.登录功能
    网上商城登录前端:

    图 2-4 登录页面

    2.3.2.用户注册功能
    注册功能页面:

    图 2-5 注册页面
    2.3.3.用户中心

    图 2-6 用户中心
    2.3.4地址管理

    图 2-7 地址管理

    2.3.5选择商品样式

    图 2-8 商品选择样式
    2.3.6商品详情信息

    图 2-9 商品详情信息
    2.3.7猜你喜欢

    图 2-9 猜你喜欢
    2.3.8购物车功能

    图 2-10 购物车
    2.3.9结算功能

    图 2-11 结算
    2.3.10订单页面

    图 2-11 订单页面

    3.部分实现代码
    3.1.系统登录功能代码
    3.1.1.前端调用代码
    {% extends ‘base.html’ %}

    {% block title %}
    用户登录页面
    {% endblock %}

    {% block headerjs %}

    <script type="text/javascript" src="/static/md5-min.js"></script>
    

    {% endblock %}

    {% block main %}

     <div class="login-body">
        <div class="login-card">
            <div class="login-top">
                <h3>新用户登录</h3>
                <h5>尊敬的用户,欢迎您回来!</h5>
            </div>
            <div class="login-bottom">
               <form method="post" action="/user/login/" onsubmit="return login();">
                   <input type="hidden" name="time" id="time">
                    <div class="login-input-box">
                        {% csrf_token %}
                    <input type="text" id="uname" name="uname" value="" class="login-admin active" placeholder="邮箱登录">
                    <span style="color:red;" id="aSpan"></span>
    
                    <input type="password" id="pwd" name="pwd" value="" class="login-password">
                    <span style="color:red;" id="pSpan"></span>
    
                    <input type="text" style="height:36px;width: 100px;" id="code" onblur="checkCode(this.value)"><img src="/user/loadCode.jpg" onclick="changeCode(this)"><span style="color:red;" id="cSpan"></span>
    
                    <input type="hidden" name="redirect" value="{{redirect}}">
                    <input type="hidden" name="cartitems" value="{{cartitems}}">
    
                    <button class="login-btn" style="color: white;text-decoration: none;cursor: pointer">登录</button>
                </div>
               </form>
                <div class="login-img">
                    <img src="/static/login_05.png" alt="">
                </div>
            </div>
        </div>
    </div>
    

    {% endblock %}

    {% block footerjs %}

    <script>
        //切换验证码
        function changeCode(imgObj){
            imgObj.src = '/user/loadCode.jpg?time='+new Date().getTime();
        }
    
    
    
    
        function isEmail(str){
            var reg = /^[a-zA-Z0-9_-]{6,}@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
            return reg.test(str);
        }
    
        function login(){
            //获取输入框的值
            var account = $('#uname').val();
            var password = $('#pwd').val();
    
            //简单校验
            if(account.length<6||!isEmail(account)){
                $('#aSpan').text('邮箱长度不能小于六位');
                return false;
            }
    
            if(password.length<6){
                $('#pSpan').text('密码长度不能小于六位');
                return false;
            }
    
            var code = $('#code').val();
            var cflag = checkCode(code);
    
            if(!cflag){
                $('#cSpan').text('×');
                return false;
            }
    
    
    
            var hex_pwd = hex_md5(password);
    
            //var hex_pwd = hex_md5(password+time)
            $('#pwd').val(hex_pwd);
    
            return true;
    
        }
    
        function checkCode(txt){
            var cflag = false;
            $.ajax({
                url:'/user/checkcode/',
                type:'get',
                data:{'code':txt},
                async:false,
                success:function(result){
                    var flag = result.checkFlag;
                    if(flag){
                        cflag = true;
                        $('#cSpan').text('√');
                    }else{
                        $('#cSpan').text('×');
                    }
                }
            })
    
            return cflag;
    
        }
    
    </script>
    

    {% endblock %}

    3.1.2.后台处理代码

    from future import unicode_literals

    from django.http import HttpResponse, JsonResponse, HttpResponseRedirect
    from django.shortcuts import render

    Create your views here.

    from django.views import View

    from cart.cartmanager import SessionCartManager
    from userapp.models import UserInfo, Area, Address
    from utils.code import *
    from django.core.serializers import serialize

    class RegisterView(View):
    def get(self,request):

        return render(request,'register.html')
    
    def post(self,request):
        #获取请求参数
        uname = request.POST.get('uname','')
        pwd = request.POST.get('pwd','')
    
    
        #插入数据库
        user = UserInfo.objects.create(uname=uname,pwd=pwd)
    
        #判断是否注册成功
        if user:
            #将用户信息存放至session对象中
            request.session['user'] = user
    
    
            return HttpResponseRedirect('/user/center/')
    
        return HttpResponseRedirect('/user/register/')
    

    class CheckUnameView(View):
    def get(self,request):
    #获取请求参数
    uname = request.GET.get(‘uname’,’’)

        #根据用户名去数据库中查询
        userList = UserInfo.objects.filter(uname=uname)
    
        flag = False
    
        #判断是否存在
        if userList:
            flag = True
    
        return JsonResponse({'flag':flag})
    

    class CenterView(View):
    def get(self,request):
    return render(request,‘center.html’)

    class LogoutView(View):
    def post(self,request):
    #删除session中登录用户信息
    if ‘user’ in request.session:
    del request.session[‘user’]

        return JsonResponse({'delflag':True})
    

    class LoginView(View):
    def get(self,request):

        #获取请求参数
        red = request.GET.get('redirct','')
    
        return render(request,'login.html',{'redirect':red})
    
    
    def post(self,request):
        #1.获取请求参数
        uname = request.POST.get('uname','')
        pwd = request.POST.get('pwd','')
    
        #2.查询数据库中是否存在
        userList = UserInfo.objects.filter(uname=uname,pwd=pwd)
    
        if userList:
            request.session['user'] = userList[0]
    
    
            red = request.POST.get('redirect','')
    
            if red == 'cart':
    
                #将session中的购物项移动到数据库
                SessionCartManager(request.session).migrateSession2DB()
    
                return HttpResponseRedirect('/cart/queryAll/')
            elif red == 'order':
                return HttpResponseRedirect('/order/order.html?cartitems='+request.POST.get('cartitems',''))
    
    
            return HttpResponseRedirect('/user/center/')
        return HttpResponseRedirect('/user/login/')
    

    class LoadCodeView(View):
    def get(self,request):
    img,str = gene_code()

        #将生成的验证码存放至session中
        request.session['sessionCode'] = str
    
        return HttpResponse(img,content_type='image/png')
    

    class CheckCodeView(View):
    def get(self,request):
    #获取输入框中的验证码
    code = request.GET.get(‘code’,’’)

        #获取生成的验证码
        sessionCode = request.session.get('sessionCode',None)
    
        #比较是否相等
        flag = code == sessionCode
    
        return JsonResponse({'checkFlag':flag})
    

    class AddressView(View):
    def get(self,request):
    user = request.session.get(‘user’, ‘’)

        # 获取当前登录用户的所有收货地址
        addrList = user.address_set.all()
    
        return render(request, 'address.html', {'addrList': addrList})
    
    def post(self,request):
        #获取请求参数
        aname = request.POST.get('aname','')
        aphone = request.POST.get('aphone','')
        addr = request.POST.get('addr','')
        user = request.session.get('user','')
    
    
    
        #将数据插入数据库
        address = Address.objects.create(aname=aname,aphone=aphone,addr=addr,userinfo=user,isdefault=(lambda count: True if count == 0 else False)(user.address_set.all().count()))
    
        #获取当前登录用户的所有收货地址
        addrList = user.address_set.all()
    
    
        return render(request,'address.html',{'addrList':addrList})
    

    class LoadAreaView(View):
    def get(self,request):
    #获取请求参数
    pid = request.GET.get(‘pid’,-1)
    pid = int(pid)

        #根据父id查询区划信息
        areaList = Area.objects.filter(parentid=pid)
    
        #进行序列化
        jareaList = serialize('json',areaList)
    
        return JsonResponse({'jareaList':jareaList})
    

    3.2.商品信息代码
    3.2.1.前端调用代码
    {% endblock %}

    {% block main %}

    <div class="classes">
        <ul class="classes-items">
            {% for category in categorys %}
    
                <li class="items {% if currentCid == category.id %}active{% endif %}"><a href="/category/{{ category.id }}">{{ category.cname }}</a></li>
    
            {% endfor %}
    
    
        </ul>
    </div>
    
    <div class="goods-model">
            <div class="goods-content">
    
                {% for goods in goodsList %}
    
                    <div class="good">
                            <a href="/goodsdetails/{{ goods.id }}">
                                <img src="{{ goods.getGImg }}" width="285px" height="285px">
                                <p class="name">{{ goods.gname }}</p>
                                <div class="price">
                                    <i>¥</i>
                                    <p class="big">{{ goods.price }}</p>
                                    <s>¥{{ goods.oldprice }}</s>
                                </div>
                                <div class="sale">
                                    特卖
                                </div>
                            </a>
                        </div>
    
                {% endfor %}
    
            </div>
        </div>
    
    <div id="pager" style="text-align: center; font-size: 16px; overflow: hidden; margin-top: 10px;">
        {% if goodsList.has_previous %}
            <a href="/category/{{ currentCid }}/page/{{ goodsList.previous_page_number }}" style="display: inline-block; padding: 5px; margin: 5px;">上一页</a>
        {% endif %}
    
        {% for page in pagelist %}
            <a href="/category/{{ currentCid }}/page/{{ page }}" {% if currentNum == page %}class="pageCls"{% endif %} style="display: inline-block; padding: 5px; margin: 5px;">{{ page }}</a>
        {% endfor %}
    
    
    
        {% if goodsList.has_next %}
            <a href="/category/{{ currentCid }}/page/{{ goodsList.next_page_number }}" style="display: inline-block; padding: 5px; margin: 5px;">下一页</a>
        {% endif %}
    
    
    </div>
    

    {% endblock %}

    {% block footerjs %}

    <script>
        $('#pager').css({'text-align':'center','font-size':'16px','overflow':'hidden','margin-top':'10px'})
        $('#pager a').css({'display':'inline-block','padding':'5px','margin':'5px'})
    
    </script>
    

    {% endblock %}

    3.2.2.后台处理代码

    -- coding: utf-8 --

    from future import unicode_literals

    from django.shortcuts import render

    Create your views here.

    from django.views import View
    from goods.models import *
    from django.core.paginator import Paginator
    import math

    class IndexView(View):
    def get(self,request,cid=1,num=1):

        cid = int(cid)
        num = int(num)
    
        #查询所有类别信息
        categorys = Category.objects.all().order_by('id')
    
        #查询当前类别下的所有商品信息
        goodsList = Goods.objects.filter(category_id=cid).order_by('id')
    
        #分页(每页显示八条记录)
        pager = Paginator(goodsList,8)
    
        #获取当前页的数据
        page_goodsList = pager.page(num)
    
        # 每页开始页码
        begin = (num - int(math.ceil(10.0 / 2)))
        if begin < 1:
            begin = 1
    
        # 每页结束页码
        end = begin + 9
        if end > pager.num_pages:
            end = pager.num_pages
    
        if end <= 10:
            begin = 1
        else:
            begin = end - 9
    
        pagelist = range(begin, end + 1)
    
        return render(request,'index.html',{'categorys':categorys,'goodsList':page_goodsList,'currentCid':cid,'pagelist':pagelist,'currentNum':num})
    

    def recommend_view(func):
    def wrapper(detailView,request,goodsid,*args,**kwargs):
    #将存放在cookie中的goodsId获取
    cookie_str = request.COOKIES.get(‘recommend’,’’)

        #存放所有goodsid的列表
        goodsIdList = [gid for gid in cookie_str.split() if gid.strip()]
    
        #:最终需要获取的推荐商品
        goodsObjList = [Goods.objects.get(id=gsid) for gsid in goodsIdList if gsid!=goodsid and Goods.objects.get(id=gsid).category_id==Goods.objects.get(id=goodsid).category_id][:4]
    
        #将goodsObjList传递给get方法
        response = func(detailView,request,goodsid,goodsObjList,*args,**kwargs)
    
    
        #判断goodsid是否存在goodsIdList中
        if goodsid in goodsIdList:
            goodsIdList.remove(goodsid)
            goodsIdList.insert(0,goodsid)
        else:
            goodsIdList.insert(0,goodsid)
    
        #将goodsIdList中的数据保存到Cookie中
        response.set_cookie('recommend',' '.join(goodsIdList),max_age=3*24*60*60)
    
    
        return response
    
    return wrapper
    

    class DetailView(View):
    @recommend_view
    def get(self,request,goodsid,recommendList=[]):

        goodsid = int(goodsid)
    
        #根据goodsid查询商品详情信息(goods对象)
        goods = Goods.objects.get(id=goodsid)
    
        return render(request,'detail.html',{'goods':goods,'recommendList':recommendList})
    

    3.3.购物车模块
    3.3.1.前端调用代码
    {% extends ‘base.html’ %}

    {% block title %}购物车{% endblock %}

    {% block main %}

    <section class="cartMain">
        <div class="cartMain_hd">
            <ul class="order_lists cartTop">
                <li class="list_chk">
                    <!--所有商品全选-->
                    <input type="checkbox" id="all" class="whole_check" style="display: inline-block;position:relative;left: -8px;top: 4px">
    
                    全选
                </li>
                <li class="list_con">商品信息</li>
                <li class="list_info">商品参数</li>
                <li class="list_price">单价</li>
                <li class="list_amount">数量</li>
                <li class="list_sum">金额</li>
                <li class="list_op">操作</li>
            </ul>
        </div>
    
        <div class="cartBox">
            <div class="order_content">
                {% for cart in cartList %}
    
                     <ul style="position: relative" class="order_lists" goodsid="{{ cart.goodsid }}" sizeid="{{ cart.sizeid }}" colorid="{{ cart.colorid }}">
                        <li class="list_chk">
                            <input type="checkbox" id="checkbox_2" class="son_check" style="display: inline-block;position:absolute;left: 21px;top: 54px">
    
                        </li>
                        <li class="list_con">
                            <div class="list_img"><a href="javascript:;"><img src="{{ cart.getColor.colorurl}}" alt=""></a></div>
                            <div class="list_text"><a href="javascript:;">{{ cart.getGoods.gname }}</a></div>
                        </li>
                        <li class="list_info">
                            <p>颜色:{{ cart.getColor.colorname }}</p>
                            <p>尺寸:{{ cart.getSize.sname }}</p>
                        </li>
                        <li class="list_price">
                            <p class="price">¥{{ cart.getGoods.price }}</p>
                        </li>
                        <li class="list_amount">
                            <div class="amount_box">
                                <a href="javascript:;" class="reduce reSty" goodsid="{{ cart.goodsid }}" sizeid="{{ cart.sizeid }}" colorid="{{ cart.colorid }}">-</a>
                                <input type="text" value="{{ cart.count }}" class="sum" readonly="">
                                <a href="javascript:;" class="plus" goodsid="{{ cart.goodsid }}" sizeid="{{ cart.sizeid }}" colorid="{{ cart.colorid }}">+</a>
                            </div>
                        </li>
                        <li class="list_sum">
                            <p class="sum_price">¥{{ cart.getTotalPrice }}</p>
                        </li>
                        <li class="list_op">
                            <p class="del"><a href="javascript:;" class="delBtn"  goodsid="{{ cart.goodsid }}" sizeid="{{ cart.sizeid }}" colorid="{{ cart.colorid }}">移除商品</a></p>
                        </li>
                    </ul>
    
    
                {% endfor %}
    
    
    
            </div>
        </div>
        <!--底部-->
        <div class="bar-wrapper">
            <div class="bar-right">
                <div class="piece">已选商品<strong class="piece_num" id="all_count">0</strong>件</div>
                <div class="totalMoney">共计: <strong class="total_text" id="all_price">0.00</strong></div>
                <div class="calBtn"><a href="javascript:;" id="jiesuan">结算</a></div>
            </div>
        </div>
    </section>
    
    
    <section class="model_bg" style="display: none;"></section>
    <section class="my_model" style="display: none;">
        <p class="title">删除宝贝<span class="closeModel">X</span></p>
        <p>您确认要删除该宝贝吗?</p>
        <div class="opBtn"><a href="javascript:;" class="dialog-sure">确定</a><a href="javascript:;" class="dialog-close">关闭</a>
        </div>
    </section>
    {% csrf_token %}
    

    {% endblock %}

    {% block footerjs %}

    <script>
        $('.plus').click(function(event){
            <!--将数据同步到服务器-->
            var csrfmiddlewaretoken = $('input[name="csrfmiddlewaretoken"]').val()
            var goodsid = $(this).attr('goodsid')
            var colorid = $(this).attr('colorid')
            var sizeid = $(this).attr('sizeid')
    
    
            var data={
                goodsid:goodsid,
                colorid:colorid,
                sizeid:sizeid,
                csrfmiddlewaretoken:csrfmiddlewaretoken,
                flag:'plus'
            }
            $.ajax({
                async:false,
                url:'/cart/',
                data:data,
                type:'post',
                success:function(data) {
    
                },
                error:function(){
                    <!--按钮设置了两个点击事件-->
    
                    event.stopImmediatePropagation()
                }
    
            })
        })
          $('.reduce').click(function(event){
            <!--将数据同步到服务器-->
            if ($(this).next('input').val()<=1){
                event.stopImmediatePropagation()
                return;
            }
            var csrfmiddlewaretoken = $('input[name="csrfmiddlewaretoken"]').val()
            var goodsid = $(this).attr('goodsid')
            var colorid = $(this).attr('colorid')
            var sizeid = $(this).attr('sizeid')
    
            var data={
                goodsid:goodsid,
                colorid:colorid,
                sizeid:sizeid,
                csrfmiddlewaretoken:csrfmiddlewaretoken,
                flag:'minus'
            }
    
            $.ajax({
                async:false,
                url:'/cart/',
                type:'post',
                data:data,
                success:function(data) {
    
                },
                error:function(){
                    <!--按钮设置了两个点击事件-->
    
                    event.stopImmediatePropagation()
                }
    
            })
        })
        $('.delBtn').click(function(){
            var goodsid= $(this).attr('goodsid');
            var colorid= $(this).attr('colorid');
            var sizeid= $(this).attr('sizeid');
            $('.dialog-sure').attr('goodsid',goodsid).attr('colorid',colorid).attr('sizeid',sizeid)
        })
    
    
        $('.dialog-sure').click(function(event){
            var goodsid= $(this).attr('goodsid');
            var colorid= $(this).attr('colorid');
            var sizeid= $(this).attr('sizeid');
            var csrfmiddlewaretoken = $('input[name="csrfmiddlewaretoken"]').val();
    
            var data={
                goodsid:goodsid,
                colorid:colorid,
                sizeid:sizeid,
                csrfmiddlewaretoken:csrfmiddlewaretoken,
                flag:'delete'
            }
    
            $.ajax({
                type:'post',
                url:'/cart/',
                data:data,
                async:false,
                success:function(result) {
    
                },
                error:function(event){
                    //停止事件传播
                    event.stopImmediatePropagation()
                }
    
            })
        })
    
        //在购物车页面点击登录按钮后回转到购物车页面
        $('.sign > a').click(function(event){
            //获取"登录"超链接的href属性值
            var link = $(this).attr('href')
            //重新赋值给href属性
            $(this).attr('href',link+"?redirct=cart")
        })
    
        //单击结算按钮
        $('#jiesuan').click(function(){
    
            //获取所有的购物项前面的复选框数组
            var cks = $('.son_check');
            //定义一个数组
            var cartitem = []
    
            $.each(cks,function(index,ck){
                if($(ck).prop('checked')){
                    var goodsid = $(ck).parents('.order_lists').attr('goodsid')
                    var sizeid = $(ck).parents('.order_lists').attr('sizeid')
                    var colorid = $(ck).parents('.order_lists').attr('colorid')
    
    
    
                    cartitem.push(JSON.stringify({'goodsid':goodsid,'sizeid':sizeid,'colorid':colorid}))
    
    
                }
            })
    
    
            if(cartitem.length==0){
                return;
            }
    
    
    
            var url = '/order/?cartitems='+cartitem;
            $(this).attr('href',url);
    
    
        })
    
    </script>
    

    {% endblock %}

    3.3.2.后台处理代码

    -- coding: utf-8 --

    from future import unicode_literals

    from django.http import HttpResponse, HttpResponseRedirect
    from django.shortcuts import render

    Create your views here.

    from django.views import View
    from cart.cartmanager import *

    class AddCartView(View):
    def post(self,request):

        request.session.modifed=True
        #1.获取当前操作类型
        flag = request.POST.get('flag','')
    
        #2.判断当前操作类型
        if flag == 'add':
            #创建cartManager对象
            carManagerObj = getCartManger(request)
            #加入购物车操作
            carManagerObj.add(**request.POST.dict())
    
        elif flag == 'plus':
            # 创建cartManager对象
            carManagerObj = getCartManger(request)
            #修改商品的数量(添加)
            carManagerObj.update(step=1,**request.POST.dict())
    
        elif flag == 'minus':
            # 创建cartManager对象
            carManagerObj = getCartManger(request)
            # 修改商品的数量(添加)
            carManagerObj.update(step=-1, **request.POST.dict())
    
        elif flag == 'delete':
            # 创建cartManager对象
            carManagerObj = getCartManger(request)
            #逻辑删除购物车选项
            carManagerObj.delete(**request.POST.dict())
    
        return HttpResponseRedirect('/cart/queryAll/')
    

    class CartListView(View):
    def get(self,request):
    # 创建cartManager对象
    carManagerObj = getCartManger(request)

        #查询所有购物项信息
        cartList = carManagerObj.queryAll()
    
    
        return render(request,'cart.html',{'cartList':cartList})
    

    4.实验
    4.1.数据库的搭建
    该请假系统使用了四大类别的表
    1.商品类:goods_goods(商品信息表)、goods_category(商品类别表)、goods_goodsdetail(商品详情表)、goods_goodsdetailname(商品详细名表)
    goods_inventory(商品库存表)、goods_color(商品颜色表)、goods_size(商品尺寸)。
    2.用户类:user_userinfo(用户信息表)、user_address(用户地址表)
    3.订单类:order_order(订单表)、order_orderitem(订单项表)、
    4.三级联动地区表 area(三级联动地区表)

    展开全文
  • 基于JAVA的数码商品网上商城 的设计与实现 姓 名 系 别 专 业 导 师 姓 名职 称 完 成 时 间 目 录 TOC \o "1-3" \h \z \u 摘 要 I Abstract II 1 绪论 1 1.1 国内外对本课题的研究动态分析 1 1.2 国内外研究动态 1 ...
  • java网上商城系统毕业设计答辩网上商城系统管理员子功能模块演示PPT 目录 研究意义 开发环境 整体框架 设计思路 功能展示 总结陈词 致 谢 研究意义 相对于消费者: 网上购物不限时,随时可以买东西; 网上购物物美价...

    java网上商城系统毕业设计答辩

    网上商城系统管理员子功能模块演示PPT 目录 研究意义 开发环境 整体框架 设计思路 功能展示 总结陈词 致 谢 研究意义 相对于消费者: 网上购物不限时,随时可以买东西; 网上购物物美价廉; 网上购物只需鼠标一点,货即到家,省时省力; 网上购物可以买到全国各地的商品,跨越了地域的限制; 相对于商家: 网上商城市场宏大; 网上商城省去了开实体店的巨额支出; 网上商城经营规模不受场地限制; 网上商城没有库存压力。 综上可以看出,网上购物突破了传统商务的障碍,无论对消费者、企业还是市场都有着巨大的吸引力和影响力,在新经济时期无疑是达到“多赢”效果的理想模式。 开发环境 开发工具-----MyEclipse10 数据库--------MYSQL 系统环境-----Windows7+Tomcat6.0 界面美化-----Dreamweaver 框架-----------Struts2+Spring+Hibernate 主要语言-----JAVA 整体框架 设计思路 代码编写分为:dao层,Service层,web层 dao层:数据访问层,将需要数据交互的代码都写在 层里 Service层:服务层,维护一个dao层变量,通过调用dao层的方法来实现业务功能,为上层提供服务 web层:业务逻辑层,通过维护服务层Service来进行逻辑处理。 优势:也是MVC编程思想的一种体现将代码分离开来,降低了耦合性,方便了业务的拓展也代码维护。 设计思路   本系统采用jsp技术,基于MVC模式开发,使用SSH框架(struts2、spring、hibernate)来增加系统的开发速度。所谓的MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。程序就是用struts2和hibernate这两个框架来实现模型层和控制器这两层,jsp实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,jsp页面请求先到action,再到dao,再回到action,回到jsp页面,action主要处理来自页面的请求,dao主要是和数据库的交互,struts2主要用在action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在dao,包括对数据库的增、删、改、查的操作,spring控制程序的流程。 功能展示 商城后台-首页图片管理 功能展示 商城后台-商品信息管理 总结陈词 总结:至今整个网上商城系统需要的功能已经全部实现,包括管理员模块的商品销售统计、商品分类管理、商品管理、商品评价管理、订单统计、订单管理、注册用户管理等7个功能和用户模块的注册登录功能和购物车功能等7个功能。 愿景:由于时间与能力的限制,还有一些功能并未实现,希望将来将其发展成一个成熟的网站购物系统。我还希望对本系统做出以下修改: 1.开发完整的后台管理模块。 2.实现网上支付模块。 3.开发物流模块。 致谢 * * 商品分类管理 商品管理 订单管理 商品评价管理 注册用户管理 订单统计 商品销售统计 注册登录功能 商品浏览功能 购物车功能 订单管理 用户信息管理 商品评价管理 收货信息管理 系统管理 用户 系统 汇报人:朱丹丹 *

    展开全文
  • java语言开发的网上商城系统,具有登陆,注册,购物车,订单查询,确认收货,评价,收藏,商品搜索等一套完整购物流程,具有很大的学习借鉴意义
  • 为落实集团公司数字化融合发展规划,推进省店公司“新华优选网上连锁商城”的建设进程,加快形成...省店公司党委副书记、总经理韩丽璞在讲话中指出,一是网上商城建设工作具有十分重要的意义网上商城的建设是集...

    e4c6715246cd0af3dece1a9272fe633b.gif

    为落实集团公司数字化融合发展规划,推进省店公司“新华优选网上连锁商城”的建设进程,加快形成区域化分布式电商运营模式,9月4日,省店公司组织召开“新华优选网上连锁商城”上线启动视频会议,全面部署相关建设运营工作。

    2a14d192f063aa93bd386a62d6454d71.png

    会上,省店华锐公司负责人解读了《新华优选网上连锁商城管理暂行办法》主要条款。

    省店公司党委副书记、总经理韩丽璞在讲话中指出,一是网上商城建设工作具有十分重要的意义。网上商城的建设是集团公司融合发展战略的重要组成部分,是省店公司践行初心使命,满足读者消费新需求的必然要求,是企业逐步壮大发展自身网络发行能力的重要抓手,是推进省店公司融合发展的重要举措。

    二是要加强组织领导,确保网上商城如期上线。各市店要成立以主要负责人为组长的领导小组,统一组织本辖区单位网上商城的上线工作;省、市店要加强沟通协调,各市店做好对辖区各单位商城上线的督导工作;扎实做好书目整理、图书上架等各项准备工作

    三是加强运营管理,确保商城运营效果。保证惠民书市线上会场的运营效果,各市县店要制定线上线下运营方案,并借势做好自身网店的宣传推广工作。要制定长期营销方案和发展规划,重点解决线上引流和配送问题,在配送中要体现当地特色和优势。

    四是做好“三个结合商城运营要与门店日常经营、店内外文化活动、会员营销相结合。

    省店连锁公司、华锐公司负责人,各市店总经理、分管副总经理及相关运营人员参加了会议。

    d9f8b14e352b6088fd3dfe48786558ac.png

    点击链接查看往期热文85f525747062b8e7832d67f0d37a2db9.gif

    906cbb6ab54208f3a36d9a40cce95f0f.png

    62e05caf4199d13ef5f965989e4de234.png

    b39f7a808c7bfca0e80c825eb47101f4.png

    2a569d557e437d0f594edc342d5d881a.png

    47bad057217a0d7dbe4fd581b2bda301.gif

    展开全文
  • 网上商城的实现已然成为一种高效方便的购物方法。对于电子商务流行的网络时代,网络购物已经远远是一个潮流。网上商城可以轻松便捷的服务于大众,同时也减少了人力、物力以及财力,...对网上商城的推动有着重大意义
  • 题目背景和意义 随着社会经济的发展和信息技术的高度发达随着物流的发展几乎 所有商品都能在网上购买 网上商城系统是解决实体商城各种问题的一种方法 该课题具有 一定的意义和研究价值 3.设计 ( 论文
  • 2. 2 Eshop网上商城的现实意义 第二章 网上商城需求分析 一. 电子商务基本概念 1. 1 电子商务的概念 2. 2 电子商务消费者 3. 3 电子商务的交易过程 二. 可行性分析 1. 1 我国电子商务认证法律- 2. 2 技术可行性操作...
  • 绪论 1 1.1 课题研究背景 1 1.2 课题研究意义 1 1.3 国内外的发展现状 2 2.需求分析 3 2.1 技术可行性分析 3 2.2 操作可行性分析 3 2.3 成本可行性分析 3 3.总体设计 4 4.详细设计 6 4.1 数据库设计 6 4.1.1 概念...
  • 目录 TOC \o "1-5" \h \z \o "Current Document" 绪论 1 \o "Current Document" 课题研究背景 1 \o "Current Document" 课题研究意义 1 \o "Current Document" 国内外的发展现状 2 \o "Current Document" 需求分析 3...
  • 问题的提出: 电子商务已经成为人们生活中不可或缺的组成部分,它提供了一种足不出户就可以挑选、购买、使用商品的方式。在众多点上网站中,综合类的B2C电商以其较...这部分内容提供直接的用户体验,决定着商城是否...
  • 随着社会经济的发展和信息技术的高度发达...因此,为了更方便顾客购物,就需要有一个功能比较完善的网上商城系统来实现这个平台。网上商城系统是解决实体商城各种问题的一种方法。因此该课题具有一定的意义和研究价值。
  • 目 录 1 1.1 课题研究背景 1 1.2 课题研究意义 1 1.3 国内外的发展现状 2 2.需求分析 3 2.1 技术可行性分析 3 2.2 操作可行性分析 3 2.3 成本可行性分析 3 3.总体设计 4 4.详细设计 6 4.1 数据库设计 6 4.1.1 概念...
  • 绪论 1 1.1课题研究背景 1 1.2课题研究意义 1 1.3国内外的发展现状 2 2.需求分析 3 2.1 技术可行性分析 3 2.2 操作可行性分析 3 2.3 成本可行性分析 3 3.总体设计 4 4.详细设计 6 4.1 数据库设计 6 4.1.1 概念建模 6...
  • 目录 TOC \o "1-5" \h \z \o "Current Document" 目录 1 摘要 3 Abstract 3 \o "Current Document" 第一章 绪论 4 1.1电子商务概述 4 Web服务器平台与 We邱台的...第二章 系统分析 5 2.1开发背景与开发意义 5 开发背景
  • 绪论 1 1.1课题研究背景 1 1.2课题研究意义 1 1.3国内外的发展现状 2 2.需求分析 3 2.1 技术可行性分析 3 2.2 操作可行性分析 3 2.3 成本可行性分析 3 3.总体设计 4 4.详细设计 6 4.1 数据库设计 6 4.1.1 概念建模 6...
  • 使用Servlet实现360商城 本项目仅供初学者学习,大神勿喷。这个项目是买的,不过也感谢作者本人开源了代码,觉得意义很大,因此总结下这个项目。 360mall 开发语言:JAVA 开发工具:Myeclipse 数据库 : sql server ...
  • 基于JavaWeb网上商城(以卖书为主)

    千次阅读 多人点赞 2020-02-18 17:08:29
    随着互联网的普及和电子商务的兴起,网上图书销售是互联网电子商务在图书销售行业中的必然结果,这种新型的图书销售形式越来越受人们的欢迎,正在以不可阻挡的 气势替代着传统的图书销售模式。与其传统销售模式相比...
  • 孝 感 学 院 本科毕业论文设计开题报告 题 目 基于J2EE 的网上购物系统设计 院 系 专 业 计算机科学与信息技术 学生姓名 学 号 指导教师 焦家林 职 称 讲师 2010 年 9 月 11 日 1 一本课题的研究目的及意义 在科学...
  • 1.4 在线购物系统的设计的意义 4 第2章 在线购物系统的需求分析 4 2.1 绪论 4 图2-1系统结构图 5 2.2 任务概述 6 2.2.1 功能说明 6 2.2.2 运行环境 7 第3章 在线购物系统的概要设计 10 3.1 概述 10 3.2 系统流程图及...
  • 网上图书商城视频教程day06

    千次阅读 2017-04-21 21:37:55
    课程视频内容AMPM1.添加图书2.添加图书第二步3.编辑图书4.编辑图书之页面添加js代码5.编辑图书之第二步流程分析6.删除图书7.订单管理介绍,及相关类创建8.... 目的及意义 功能概括 3~5个关键字 摘要字数不易
  • 其中网上商城就是电子商务应用的一个发展的潮流。网上商城不但让消费者购物更加方便,而且能为企业带来很多好处。 本论文研究一种基于springmvc、spring、mabatis简称ssm三大框架设计的javaee网上服饰商城系统。...
  • 本文首先系统地研究了开发电子商务网站的背景和意义,分析了当今B2C电子商务交易的网站特点和共性,从而得出设计本网站的思路和方法。接着介绍了实现系统开发的ASP和IIS5.0环境,数据库用ACCESS实现。同时简要介绍了...
  • 互联网只有第一,没有第二,要懂这个意义,可以先不做成熟的,或者买产品
  • 一、网上商城建设意义 用以提高商业交易的效率、范围, 网上商城 以在线交易、客户服务为核心。降低人工、经营本钱,这对于全面推进企业的信息化网络化具有重要意义。增强企业与客户之间的亲和力。 1、网上商城有利...
  • E购-商城系统 v3.0

    2019-11-08 23:53:31
    【E购商城系统(B2C)软件功能】将商品信息清晰、多样化的展示到网上,让顾客便于浏览、查询。简洁,便利的购物流程,易于购买,达成交易。多种会员促销方式,针对不同时间,不同商品做多种促销活动,刺激客户产生二次...
  • 说到建设移动网上商城意义,其实自从移动互联网时代开启之后,这就成了必然趋势,伴随着国内互联网巨头的集体上市,国内互联网界的长期持续性投入通过上市取得变现,PC电商格局大局已定,PC互联网时代也暂时告一...
  • 微信商城是随着微信平台而产生的一种网上商城系统类型,自出世开始便受到了广泛的关注。但是微信电商行业市场虽然足够庞大,却很少有企业商家能够运营得好。其实,只要掌握好微信商城的运营关键点,就能够得到尽人意...

空空如也

空空如也

1 2 3 4
收藏数 79
精华内容 31
关键字:

网上商城意义