1. 功能介绍
在这个项目中,我们采用了B/S结构,使用Python语言进行后端开发,使用Vue.js进行前端开发。整个平台分为前台和后台两个部分,各自具有不同的功能模块。
前台功能包括:
首页:展示平台的主要内容和推荐信息,吸引用户的注意并提供导航功能。
商品详情页:展示具体商品的详细信息,包括商品描述、价格、评价等,并提供购买或加入购物车的功能。
用户中心模块:提供用户管理相关功能,包括用户登录、注册、个人信息修改、订单查询等。
后台功能包括:
总览:提供平台整体运营数据的概览,包括用户数量、订单数量、销售额等关键指标。
订单管理:对用户提交的订单进行管理,包括订单查询、订单状态管理、退款处理等。
商品管理:管理平台上的商品信息,包括商品的添加、编辑、删除等操作。
分类管理:对商品进行分类管理,包括添加、编辑、删除商品分类等操作。
标签管理:管理商品的标签信息,包括添加、编辑、删除标签等操作。
评论管理:管理用户对商品的评论,包括评论的审核、删除等操作。
用户管理:管理平台上的用户信息,包括用户的添加、编辑、删除等操作。
运营管理:提供运营人员进行广告管理、促销活动管理等功能。
日志管理:记录平台的操作日志,包括用户的登录日志、操作日志等,用于追踪和排查问题。
系统信息模块:提供系统的基本信息和配置管理,包括系统版本、数据库配置、缓存配置等。
2.界面预览
2.1 首页
2.2 后台页面
3. 部分核心代码展示
3.1 后端
from rest_framework import exceptions
from rest_framework.authentication import BaseAuthentication
from myapp.models import User
# 后台接口认证
class AdminTokenAuthtication(BaseAuthentication):
def authenticate(self, request):
adminToken = request.META.get("HTTP_ADMINTOKEN")
print("检查adminToken==>" + adminToken)
users = User.objects.filter(admin_token=adminToken)
"""
判定条件:
1. 传了adminToken
2. 查到了该帐号
3. 该帐号是管理员或演示帐号
"""
if not adminToken or users.count == 0 or users[0].role == '2':
raise exceptions.AuthenticationFailed("AUTH_FAIL_END")
else:
print('adminToken验证通过')
class TokenAuthtication(BaseAuthentication):
def authenticate(self, request):
token = request.META.get("HTTP_TOKEN", "")
if token is not None:
print("检查token==>" + token)
users = User.objects.filter(token=token)
# print(users)
"""
判定条件:
1. 传了token
2. 查到了该帐号
3. 该帐号是普通用户
"""
if not token or users.count == 0 or (users[0].role in ['1', '3']):
raise exceptions.AuthenticationFailed("AUTH_FAIL_FRONT")
else:
print('token验证通过')
else:
print("检查token==>token 为空")
raise exceptions.AuthenticationFailed("AUTH_FAIL_FRONT")
3.2 前端
const path = require('path')
const webpack = require('webpack')
const buildDate = JSON.stringify(new Date().toLocaleString())
function resolve (dir) {
return path.join(__dirname, dir)
}
const isProd = process.env.NODE_ENV === 'production'
const assetsCDN = {
}
// vue.config.js
const vueConfig = {
runtimeCompiler: true,
publicPath: './',
configureWebpack: {
// webpack plugins
plugins: [
],
// if prod, add externals
externals: isProd ? assetsCDN.externals : {}
},
chainWebpack: config => {
config.resolve.alias.set('@$', resolve('src'))
},
css: {
loaderOptions: {
less: {
modifyVars: {
// less vars,customize ant design theme
// 'primary-color': '#F5222D',
},
// DO NOT REMOVE THIS LINE
javascriptEnabled: true
}
}
},
// disable source map in production
productionSourceMap: false,
lintOnSave: undefined,
// babel-loader no-ignore node_modules/*
transpileDependencies: []
}
module.exports = vueConfig
有需要的可私信或者评论联系博主噢!