vue+django2.0.2-rest-framework 生鲜项目


一、xadmin后台管理系统配置

不使用Django自带admin后台管理,使用xadmin后台管理,类似CRM项目中的kingadmin后台管理

xadmin依赖以下插件,需在虚拟环境下安装:

  • django
  • django-crispy-forms
  • django-reversion
  • django-formtools
  • django-import-export
  • future
  • httplib2
  • six
  • xlwt
  • xlsxwriter   # xlwt跟xlsxwriter,不是依赖包,主要用来做ex文件导出,使xadmin功能更加强大些

    pip install django-crispy-forms django-reversion django-formtools future httplib2 six  # 多个依赖包一起安装
    
    pip install django-import-exportpip install xlwt xlsxwriter

    xadmin依赖包安装

 1)将xadmin包复制,放到extre_apps中,在apps中的每个app(users、goos、trade、user_operation)添加一个adminx文件

 2)将xadmin、crispy_forms、DjangoUeditor,在setting中进行注册:

INSTALLED_APPS = ['django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','apps.users.apps.UsersConfig','apps.goods.apps.GoodsConfig','apps.trade.apps.TradeConfig','apps.user_operation.apps.UserOperationConfig','xadmin','crispy_forms','DjangoUeditor',# 'goods',# 'trade',# 'user_operation',# 'users'
]

 setting相关配置:

# 语言改为中文
LANGUAGE_CODE = 'zh-hans'# 时区改为上海
TIME_ZONE = 'Asia/Shanghai'USE_I18N = TrueUSE_L10N = True# 数据库存储使用时间,True时间会被存为UTC的时间
USE_TZ = False

# 设置上传文件,图片访问路径
STATIC_URL = '/static/'STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"),
]
# 数据存放
MEDIA_URL = "/media/"MEDIA_ROOT = os.path.join(BASE_DIR, "media")

3)app名称中文化:

# goods/apps.py
class GoodsConfig(AppConfig):name = 'goods'verbose_name = "商品管理"# trade/apps.py
class TradeConfig(AppConfig):name = 'trade'verbose_name = "交易管理"#user_operation/apps.py
class UserOperationConfig(AppConfig):name = 'user_operation'verbose_name = "操作管理"#users/apps.py
class UsersConfig(AppConfig):name = 'apps.users'verbose_name = "用户管理"

 4)配置xadmin和ueditor的路由

# MxShop/urls.pyimport xadminfrom django.urls import path,includeurlpatterns = [path('xadmin/', xadmin.site.urls),path('ueditor/', include('DjangoUeditor.urls')),
]

5)makemigrations

  migrate

6)python manager.py createsuperuser ,创建超级用户,登录(127.0.0.1:8000/xadmin)xadmin后台管理查看详情


二、导入商品类别数据、商品数据

dbtools新建data文件夹,导入category_data.py和product_data.py文件

 category_data.py:商品分类数据

 product_data.py:商品详情数据

dbtools分别创建脚本:

 import_category_data.py:用于导入category_data中的数据

 import_goods_data.py:用于导入producu_data中的数据

把brands和goods图片拷贝到media相应目录下

 

运行脚本:import_category_data.py 、 import_goods_data.py ,完成将商品分类数据及商品详情数据都存入数据库

 

xadmin后台中要显示出商品的img图片,需在Mxshop中的url.py添加:

from django.views.static import serve  # 用于寻找静态文件
from Mxshop.settings import MEDIA_ROOTurlpatterns = [path('xadmin/', xadmin.site.urls),path('ueditor/', include('DjangoUeditor.urls')),# 处理图片显示的url,使用Django自带serve,传入参数告诉它去哪个路径找,我们有配置好的路径MEDIAROOT# 这句代码意思是,与media相关的通通当作静态文件来处理,根据指定好的MEDIA_ROOT路径找寻静态文件re_path('media/(?P<path>.*)', serve, {"document_root": MEDIA_ROOT }),  #添加此句代码
]

category_data.py:

#!/usr/bin/env python
# encoding: utf-8

row_data = [{'sub_categorys': [{'sub_categorys': [{'code': 'yr','name': '羊肉'},{'code': 'ql','name': '禽类'},{'code': 'zr','name': '猪肉'},{'code': 'nr','name': '牛肉'}],'code': 'jprl','name': '精品肉类'},{'sub_categorys': [{'code': 'cb','name': '参鲍'},{'code': 'yu','name': '鱼'},{'code': 'xia','name': '虾'},{'code': 'xb','name': '蟹/贝'}],'code': 'hxsc','name': '海鲜水产'},{'sub_categorys': [{'code': 'xhd_xyd','name': '松花蛋/咸鸭蛋'},{'code': 'jd','name': '鸡蛋'}],'code': 'dzp','name': '蛋制品'},{'sub_categorys': [{'code': 'sc','name': '生菜'},{'code': 'bc','name': '菠菜'},{'code': 'yj','name': '圆椒'},{'code': 'xlh','name': '西兰花'}],'code': 'ycl','name': '叶菜类'},{'sub_categorys': [],'code': 'gjl','name': '根茎类'},{'sub_categorys': [],'code': 'qgl','name': '茄果类'},{'sub_categorys': [],'code': 'jgl','name': '菌菇类'},{'sub_categorys': [],'code': 'jksx','name': '进口生鲜'}],'code': 'sxsp','name': '生鲜食品'},{'sub_categorys': [{'sub_categorys': [{'code': 'wly','name': '五粮液'},{'code': 'lzlj','name': '泸州老窖'},{'code': 'mt','name': '茅台'}],'code': 'bk','name': '白酒'},{'sub_categorys': [],'code': 'ptj','name': '葡萄酒'},{'sub_categorys': [],'code': 'yj','name': '洋酒'},{'sub_categorys': [],'code': 'pj','name': '啤酒'},{'sub_categorys': [{'code': 'qtpp','name': '其他品牌'},{'code': 'hj','name': '黄酒'},{'code': 'ysj','name': '养生酒'}],'code': 'qtjp','name': '其他酒品'},{'sub_categorys': [],'code': 'yls','name': '饮料/水'},{'sub_categorys': [{'code': 'bld','name': '白兰地'},{'code': 'wsj','name': '威士忌'}],'code': 'hj','name': '红酒'}],'code': 'jsyl','name': '酒水饮料'},{'sub_categorys': [{'sub_categorys': [{'code': '其他食用油','name': '其他食用油'},{'code': '菜仔油','name': '菜仔油'},{'code': '花生油','name': '花生油'},{'code': '橄榄油','name': '橄榄油'},{'code': '礼盒','name': '礼盒'}],'code': '食用油','name': '食用油'},{'sub_categorys': [{'code': '面粉/面条','name': '面粉/面条'},{'code': '大米','name': '大米'},{'code': '意大利面','name': '意大利面'}],'code': '米面杂粮','name': '米面杂粮'},{'sub_categorys': [{'code': '调味油/汁','name': '调味油/汁'},{'code': '酱油/醋','name': '酱油/醋'}],'code': '厨房调料','name': '厨房调料'},{'sub_categorys': [],'code': '南北干货','name': '南北干货'},{'sub_categorys': [],'code': '方便速食','name': '方便速食'},{'sub_categorys': [],'code': '调味品','name': '调味品'}],'code': '粮油副食','name': '粮油副食'},{'sub_categorys': [{'sub_categorys': [{'code': '西红柿','name': '西红柿'},{'code': '韭菜','name': '韭菜'},{'code': '青菜','name': '青菜'}],'code': '有机蔬菜','name': '有机蔬菜'},{'sub_categorys': [{'code': '甘蓝','name': '甘蓝'},{'code': '胡萝卜','name': '胡萝卜'},{'code': '黄瓜','name': '黄瓜'}],'code': '精选蔬菜','name': '精选蔬菜'},{'sub_categorys': [{'code': '火龙果','name': '火龙果'},{'code': '菠萝蜜','name': '菠萝蜜'},{'code': '奇异果','name': '奇异果'}],'code': '进口水果','name': '进口水果'},{'sub_categorys': [{'code': '水果礼盒','name': '水果礼盒'},{'code': '苹果','name': '苹果'},{'code': '雪梨','name': '雪梨'}],'code': '国产水果','name': '国产水果'}],'code': '蔬菜水果','name': '蔬菜水果'},{'sub_categorys': [{'sub_categorys': [{'code': '果冻','name': '果冻'},{'code': '枣类','name': '枣类'},{'code': '蜜饯','name': '蜜饯'},{'code': '肉类零食','name': '肉类零食'},{'code': '坚果炒货','name': '坚果炒货'}],'code': '休闲零食','name': '休闲零食'},{'sub_categorys': [{'code': '创意喜糖','name': '创意喜糖'},{'code': '口香糖','name': '口香糖'},{'code': '软糖','name': '软糖'},{'code': '棒棒糖','name': '棒棒糖'}],'code': '糖果','name': '糖果'},{'sub_categorys': [{'code': '夹心巧克力','name': '夹心巧克力'},{'code': '白巧克力','name': '白巧克力'},{'code': '松露巧克力','name': '松露巧克力'},{'code': '黑巧克力','name': '黑巧克力'}],'code': '巧克力','name': '巧克力'},{'sub_categorys': [{'code': '牛肉干','name': '牛肉干'},{'code': '猪肉脯','name': '猪肉脯'},{'code': '牛肉粒','name': '牛肉粒'},{'code': '猪肉干','name': '猪肉干'}],'code': '肉干肉脯/豆干','name': '肉干肉脯/豆干'},{'sub_categorys': [{'code': '鱿鱼足','name': '鱿鱼足'},{'code': '鱿鱼丝','name': '鱿鱼丝'},{'code': '墨鱼/乌贼','name': '墨鱼/乌贼'},{'code': '鱿鱼仔','name': '鱿鱼仔'},{'code': '鱿鱼片','name': '鱿鱼片'}],'code': '鱿鱼丝/鱼干','name': '鱿鱼丝/鱼干'}],'code': '休闲食品','name': '休闲食品'},{'sub_categorys': [{'sub_categorys': [],'code': '进口奶品','name': '进口奶品'},{'sub_categorys': [],'code': '国产奶品','name': '国产奶品'},{'sub_categorys': [],'code': '奶粉','name': '奶粉'},{'sub_categorys': [],'code': '有机奶','name': '有机奶'},{'sub_categorys': [],'code': '原料奶','name': '原料奶'}],'code': '奶类食品','name': '奶类食品'},{'sub_categorys': [{'sub_categorys': [],'code': '菌菇类','name': '菌菇类'},{'sub_categorys': [],'code': '腌干海产','name': '腌干海产'},{'sub_categorys': [],'code': '汤料','name': '汤料'},{'sub_categorys': [],'code': '豆类','name': '豆类'},{'sub_categorys': [],'code': '干菜/菜干','name': '干菜/菜干'},{'sub_categorys': [],'code': '干果/果干','name': '干果/果干'},{'sub_categorys': [],'code': '豆制品','name': '豆制品'},{'sub_categorys': [],'code': '腊味','name': '腊味'}],'code': '天然干货','name': '天然干货'},{'sub_categorys': [{'sub_categorys': [],'code': '白茶','name': '白茶'},{'sub_categorys': [],'code': '红茶','name': '红茶'},{'sub_categorys': [],'code': '绿茶','name': '绿茶'}],'code': '精选茗茶','name': '精选茗茶'}
]

category_data

product_data.py:

#!/usr/bin/env python
# encoding: utf-8

row_data = [{'images': ['goods/images/1_P_1449024889889.jpg','goods/images/1_P_1449024889264.jpg','goods/images/1_P_1449024889726.jpg','goods/images/1_P_1449024889018.jpg','goods/images/1_P_1449024889287.jpg'],'categorys': ['首页','生鲜食品','根茎类'],'market_price': '¥232元','name': '新鲜水果甜蜜香脆单果约800克','desc': '食用百香果可以增加胃部饱腹感,减少余热量的摄入,还可以吸附胆固醇和胆汁之类有机分子,抑制人体对脂肪的吸收。因此,长期食用有利于改善人体营养吸收结构,降低体内脂肪,塑造健康优美体态。','sale_price': '¥156元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/2_P_1448945810202.jpg','goods/images/2_P_1448945810814.jpg'],'categorys': ['首页','生鲜食品','海鲜水产'],'market_price': '¥106元','name': '田然牛肉大黄瓜条生鲜牛肉冷冻真空黄牛','desc': '前腿+后腿+羊排共8斤,原生态大山放牧羊羔,曾经的皇室贡品,央视推荐,2005年北京招待全球财金首脑。五层专用包装箱+真空包装+冰袋+保鲜箱+顺丰冷链发货,路途保质期8天','sale_price': '¥88元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/7_P_1448945104883.jpg','goods/images/7_P_1448945104734.jpg'],'categorys': ['首页','生鲜食品','叶菜类'],'market_price': '¥286元','name': '酣畅家庭菲力牛排10片澳洲生鲜牛肉团购套餐','desc': None,'sale_price': '¥238元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/47_P_1448946213263.jpg','goods/images/47_P_1448946213157.jpg'],'categorys': ['首页','生鲜食品','根茎类'],'market_price': '¥156元','name': '日本蒜蓉粉丝扇贝270克6只装','desc': None,'sale_price': '¥108元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/10_P_1448944572085.jpg','goods/images/10_P_1448944572532.jpg','goods/images/10_P_1448944572872.jpg'],'categorys': ['首页','生鲜食品','海鲜水产'],'market_price': '¥106元','name': '内蒙新鲜牛肉1斤清真生鲜牛肉火锅食材','desc': None,'sale_price': '¥88元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/4_P_1448945381985.jpg','goods/images/4_P_1448945381013.jpg'],'categorys': ['首页','生鲜食品','茄果类'],'market_price': '¥90元','name': '乌拉圭进口牛肉卷特级肥牛卷','desc': None,'sale_price': '¥75元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/8_P_1448945032810.jpg','goods/images/8_P_1448945032646.jpg'],'categorys': ['首页','生鲜食品','进口生鲜'],'market_price': '¥150元','name': '五星眼肉牛排套餐8片装原味原切生鲜牛肉','desc': None,'sale_price': '¥125元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/11_P_1448944388277.jpg','goods/images/11_P_1448944388034.jpg','goods/images/11_P_1448944388201.jpg'],'categorys': ['首页','生鲜食品','海鲜水产'],'market_price': '¥31元','name': '澳洲进口120天谷饲牛仔骨4份原味生鲜','desc': None,'sale_price': '¥26元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/6_P_1448945167279.jpg','goods/images/6_P_1448945167015.jpg'],'categorys': ['首页','生鲜食品','菌菇类'],'market_price': '¥239元','name': '潮香村澳洲进口牛排家庭团购套餐20片','desc': None,'sale_price': '¥199元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/9_P_1448944791617.jpg','goods/images/9_P_1448944791129.jpg','goods/images/9_P_1448944791077.jpg','goods/images/9_P_1448944791229.jpg'],'categorys': ['首页','生鲜食品','根茎类'],'market_price': '¥202元','name': '爱食派内蒙古呼伦贝尔冷冻生鲜牛腱子肉1000g','desc': None,'sale_price': '¥168元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/3_P_1448945490837.jpg','goods/images/3_P_1448945490084.jpg'],'categorys': ['首页','生鲜食品','精品肉类'],'market_price': '¥306元','name': '澳洲进口牛尾巴300g新鲜肥牛肉','desc': '新鲜羊羔肉整只共15斤,原生态大山放牧羊羔,曾经的皇室贡品,央视推荐,2005年北京招待全球财金首脑。五层专用包装箱+真空包装+冰袋+保鲜箱+顺丰冷链发货,路途保质期8天','sale_price': '¥255元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/48_P_1448943988970.jpg','goods/images/48_P_1448943988898.jpg','goods/images/48_P_1448943988439.jpg'],'categorys': ['首页','生鲜食品','海鲜水产'],'market_price': '¥126元','name': '新疆巴尔鲁克生鲜牛排眼肉牛扒1200g','desc': None,'sale_price': '¥88元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/5_P_1448945270390.jpg','goods/images/5_P_1448945270067.jpg','goods/images/5_P_1448945270432.jpg'],'categorys': ['首页','生鲜食品','蛋制品'],'market_price': '¥144元','name': '澳洲进口安格斯牛切片上脑牛排1000g','desc': '澳大利亚是国际公认的没有疯牛病和口蹄疫的国家。为了保持澳大利亚产品的高标准,澳大利亚牛肉业和各级政府共同努力简历了严格的标准和体系,以保证生产的整体化和产品的可追溯性','sale_price': '¥120元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['images/201705/goods_img/53_P_1495068879687.jpg'],'categorys': ['首页','生鲜食品','茄果类'],'market_price': '¥120元','name': '帐篷出租','desc': None,'sale_price': '¥100元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/16_P_1448947194687.jpg'],'categorys': ['首页','酒水饮料','红酒'],'market_price': '¥23元','name': '52度茅台集团国隆双喜酒500mlx6','desc': '贵州茅台酒厂(集团)保健酒业有限公司生产,是以“龙”字打头的酒水。中国龙文化上下8000年,源远而流长,龙的形象是一种符号、一种意绪、一种血肉相联的情感。','sale_price': '¥19元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/14_P_1448947354031.jpg','goods/images/14_P_1448947354433.jpg'],'categorys': ['首页','酒水饮料','饮料/水'],'market_price': '¥43元','name': '52度水井坊臻酿八號500ml','desc': None,'sale_price': '¥36元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/12_P_1448947547989.jpg'],'categorys': ['首页','酒水饮料','其他酒品'],'market_price': '¥190元','name': '53度茅台仁酒500ml','desc': None,'sale_price': '¥158元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/46_P_1448946598711.jpg','goods/images/46_P_1448946598301.jpg'],'categorys': ['首页','酒水饮料','葡萄酒'],'market_price': '¥38元','name': '双响炮洋酒JimBeamwhiskey美国白占边','desc': None,'sale_price': '¥28元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/21_P_1448946793276.jpg','goods/images/21_P_1448946793153.jpg'],'categorys': ['首页','酒水饮料','饮料/水'],'market_price': '¥55元','name': '西夫拉姆进口洋酒小酒版','desc': None,'sale_price': '¥46元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/15_P_1448947257324.jpg','goods/images/15_P_1448947257580.jpg'],'categorys': ['首页','酒水饮料','洋酒'],'market_price': '¥22元','name': '茅台53度飞天茅台500ml','desc': None,'sale_price': '¥18元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/13_P_1448947460386.jpg','goods/images/13_P_1448947460276.jpg','goods/images/13_P_1448947460353.jpg'],'categorys': ['首页','酒水饮料','葡萄酒'],'market_price': '¥42元','name': '52度兰陵·紫气东来1600mL山东名酒','desc': None,'sale_price': '¥35元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/50_P_1448946543091.jpg','goods/images/50_P_1448946542182.jpg'],'categorys': ['首页','酒水饮料','饮料/水'],'market_price': '¥24元','name': 'JohnnieWalker尊尼获加黑牌威士忌','desc': None,'sale_price': '¥20元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/51_P_1448946466595.jpg','goods/images/51_P_1448946466208.jpg'],'categorys': ['首页','酒水饮料','洋酒'],'market_price': '¥31元','name': '人头马CLUB特优香槟干邑350ml','desc': None,'sale_price': '¥26元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/17_P_1448947102246.jpg'],'categorys': ['首页','酒水饮料','啤酒'],'market_price': '¥54元','name': '张裕干红葡萄酒750ml*6支','desc': None,'sale_price': '¥45元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/20_P_1448946850602.jpg'],'categorys': ['首页','酒水饮料','葡萄酒'],'market_price': '¥46元','name': '原瓶原装进口洋酒烈酒法国云鹿XO白兰地','desc': None,'sale_price': '¥38元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/19_P_1448946951581.jpg','goods/images/19_P_1448946951726.jpg'],'categorys': ['首页','酒水饮料','白酒'],'market_price': '¥82元','name': '法国原装进口圣贝克干红葡萄酒750ml','desc': None,'sale_price': '¥68元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/18_P_1448947011435.jpg'],'categorys': ['首页','酒水饮料','白酒'],'market_price': '¥67元','name': '法国百利威干红葡萄酒AOP级6支装','desc': None,'sale_price': '¥56元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/22_P_1448946729629.jpg'],'categorys': ['首页','酒水饮料','洋酒'],'market_price': '¥71元','name': '芝华士12年苏格兰威士忌700ml','desc': None,'sale_price': '¥59元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/45_P_1448946661303.jpg'],'categorys': ['首页','酒水饮料','饮料/水'],'market_price': '¥31元','name': '深蓝伏特加巴维兰利口酒送预调酒','desc': None,'sale_price': '¥18元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/32_P_1448948525620.jpg'],'categorys': ['首页','蔬菜水果','精选蔬菜'],'market_price': '¥43元','name': '赣南脐橙特级果10斤装','desc': None,'sale_price': '¥36元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/30_P_1448948663450.jpg','goods/images/30_P_1448948662571.jpg','goods/images/30_P_1448948663221.jpg'],'categorys': ['首页','蔬菜水果','进口水果'],'market_price': '¥11元','name': '泰国菠萝蜜16-18斤1个装','desc': '【懒人吃法】菠萝蜜果肉,冰袋保鲜,收货就吃,冰爽Q脆甜,2斤装,全国顺丰空运包邮,发出后48小时内可达,一线城市基本隔天可达','sale_price': '¥9元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/31_P_1448948598947.jpg','goods/images/31_P_1448948598475.jpg'],'categorys': ['首页','蔬菜水果','国产水果'],'market_price': '¥22元','name': '四川双流草莓新鲜水果礼盒2盒','desc': None,'sale_price': '¥18元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/35_P_1448948333610.jpg','goods/images/35_P_1448948333313.jpg'],'categorys': ['首页','蔬菜水果','有机蔬菜'],'market_price': '¥67元','name': '新鲜头茬非洲冰草冰菜','desc': None,'sale_price': '¥56元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/36_P_1448948234405.jpg','goods/images/36_P_1448948234250.jpg'],'categorys': ['首页','蔬菜水果','有机蔬菜'],'market_price': '¥6元','name': '仿真蔬菜水果果蔬菜模型','desc': None,'sale_price': '¥5元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/33_P_1448948479966.jpg','goods/images/33_P_1448948479886.jpg'],'categorys': ['首页','蔬菜水果','精选蔬菜'],'market_price': '¥28元','name': '现摘芭乐番石榴台湾珍珠芭乐','desc': '''海南产精品释迦果,释迦是水果中的贵族,产量少,味道很甜,奶香十足,非常可口,果裹果园顺丰空运,保证新鲜.果子个大,一斤1-2个左右,大个头的果子更尽兴!''','sale_price': '¥23元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/34_P_1448948399009.jpg'],'categorys': ['首页','蔬菜水果','国产水果'],'market_price': '¥46元','name': '潍坊萝卜5斤/箱礼盒','desc': '脐橙规格是65-90MM左右(标准果果径平均70MM左右,精品果果径平均80MM左右),一斤大概有2-4个左右,脐橙产自江西省赣州市信丰县安西镇,全过程都是采用农家有机肥种植,生态天然','sale_price': '¥38元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/43_P_1448948762645.jpg'],'categorys': ['首页','休闲食品'],'market_price': '¥154元','name': '休闲零食膨化食品焦糖/奶油/椒麻味','desc': None,'sale_price': '¥99元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/38_P_1448949220255.jpg'],'categorys': ['首页','奶类食品','奶粉'],'market_price': '¥84元','name': '蒙牛未来星儿童成长牛奶骨力型190ml*15盒','desc': None,'sale_price': '¥70元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/44_P_1448948850187.jpg'],'categorys': ['首页','奶类食品','进口奶品'],'market_price': '¥70元','name': '蒙牛特仑苏有机奶250ml×12盒','desc': None,'sale_price': '¥32元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['images/201511/goods_img/49_P_1448162819889.jpg'],'categorys': ['首页','奶类食品'],'market_price': '¥1元','name': '1元支付测试商品','desc': None,'sale_price': '¥1元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/40_P_1448949038702.jpg'],'categorys': ['首页','奶类食品','进口奶品'],'market_price': '¥70元','name': '德运全脂新鲜纯牛奶1L*10盒装整箱','desc': None,'sale_price': '¥58元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/39_P_1448949115481.jpg'],'categorys': ['首页','奶类食品','有机奶'],'market_price': '¥38元','name': '木糖醇红枣早餐奶即食豆奶粉538g','desc': None,'sale_price': '¥32元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/41_P_1448948980358.jpg'],'categorys': ['首页','奶类食品','原料奶'],'market_price': '¥26元','name': '高钙液体奶200ml*24盒','desc': None,'sale_price': '¥22元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/37_P_1448949284365.jpg'],'categorys': ['首页','奶类食品','国产奶品'],'market_price': '¥720元','name': '新西兰进口全脂奶粉900g','desc': None,'sale_price': '¥600元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'images': ['goods/images/42_P_1448948895193.jpg'],'categorys': ['首页','奶类食品','进口奶品'],'market_price': '¥43元','name': '伊利官方直营全脂营养舒化奶250ml*12盒*2提','desc': None,'sale_price': '¥36元','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},
{'sale_price': '¥156元','images': ['goods/images/27_P_1448947771805.jpg'],'market_price': '¥187元','categorys': ['首页','粮油副食','厨房调料'],'desc': None,'name': '维纳斯橄榄菜籽油5L/桶','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'sale_price': '¥15元','images': ['goods/images/23_P_1448948070348.jpg'],'market_price': '¥18元','categorys': ['首页','粮油副食','食用油'],'desc': None,'name': '糙米450gx3包粮油米面','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'sale_price': '¥45元','images': ['goods/images/26_P_1448947825754.jpg'],'market_price': '¥54元','categorys': ['首页','粮油副食','调味品'],'desc': None,'name': '精炼一级大豆油5L色拉油粮油食用油','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'sale_price': '¥26元','images': ['goods/images/28_P_1448947699948.jpg','goods/images/28_P_1448947699777.jpg'],'market_price': '¥31元','categorys': ['首页','粮油副食','南北干货'],'desc': None,'name': '橄榄玉米油5L*2桶','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'sale_price': '¥9元','images': ['goods/images/24_P_1448948023823.jpg','goods/images/24_P_1448948023977.jpg'],'market_price': '¥11元','categorys': ['首页','粮油副食','方便速食'],'desc': None,'name': '山西黑米农家黑米4斤','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'sale_price': '¥12元','images': ['goods/images/25_P_1448947875346.jpg'],'market_price': '¥14元','categorys': ['首页','粮油副食','米面杂粮'],'desc': None,'name': '稻园牌稻米油粮油米糠油绿色植物油','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'},{'sale_price': '¥12元','images': ['goods/images/29_P_1448947631994.jpg'],'market_price': '¥14元','categorys': ['首页','粮油副食','食用油'],'desc': None,'name': '融氏纯玉米胚芽油5l桶','goods_desc':'<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>'}
]pass

product_data

import_category_data.py:

# encoding: utf-8# 独立使用django的model
import sys
import os
#  获取当前文件的路径,即Mxshop/db_tools
pwd = os.path.dirname(os.path.realpath(__file__))
# 往上一级,回到根目录,即/Mxshop
sys.path.append(pwd + "../")
# django环境,需先设置,才能使用django相关
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "VueDjangoFrameWorkShop.settings")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Mxshop.settings")import django
# 初始化django
django.setup()# 这行代码必须在初始化django之后
from goods.models import GoodsCategoryfrom db_tools.data.category_data import row_data# 一级分类
for lev1_cat in row_data:lev1_intance = GoodsCategory()lev1_intance.code = lev1_cat["code"]lev1_intance.name = lev1_cat["name"]lev1_intance.category_type = 1lev1_intance.save()# 该一级分类之下的二级分类for lev2_cat in lev1_cat["sub_categorys"]:lev2_intance = GoodsCategory()lev2_intance.code = lev2_cat["code"]lev2_intance.name = lev2_cat["name"]lev2_intance.category_type = 2lev2_intance.parent_category = lev1_intancelev2_intance.save()# 该二级分类之下的三级分类for lev3_cat in lev2_cat["sub_categorys"]:lev3_intance = GoodsCategory()lev3_intance.code = lev3_cat["code"]lev3_intance.name = lev3_cat["name"]lev3_intance.category_type = 3lev3_intance.parent_category = lev2_intancelev3_intance.save()

import_category_data

import_goods_data.py:

# encoding: utf-8import sys
import ospwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd+"../")
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "VueDjangoFrameWorkShop.settings")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Mxshop.settings")import django
django.setup()from goods.models import Goods, GoodsCategory, GoodsImagefrom db_tools.data.product_data import row_datafor goods_detail in row_data:goods = Goods()goods.name = goods_detail["name"]# 价格(¥55元),空格替换掉¥、元,強制转化成float类型goods.market_price = float(int(goods_detail["market_price"].replace("¥", "").replace("元", ""))) #市场价格goods.shop_price = float(int(goods_detail["sale_price"].replace("¥", "").replace("元", ""))) #本店价格goods.goods_brief = goods_detail["desc"] if goods_detail["desc"] is not None else ""  #简单描述goods.goods_desc = goods_detail["goods_desc"] if goods_detail["goods_desc"] is not None else ""  #图片,拿到的是字符串# 取第一张作为封面图goods.goods_front_image = goods_detail["images"][0] if goods_detail["images"] else ""# 取出倒数第一个也就是最小的类category_name = goods_detail["categorys"][-1]# 取出当前子类对应的GoodsCategory对象category = GoodsCategory.objects.filter(name=category_name)if category:# goods外键关联GoodsCategory,让两者关联上goods.category = category[0]goods.save()# 详情页,商品轮播图for goods_image in goods_detail["images"]:goods_image_instance = GoodsImage()goods_image_instance.image = goods_imagegoods_image_instance.goods = goodsgoods_image_instance.save()

import_goods_data


三、restful api 与前端源码介绍

restful api 介绍

 1、前后端分离优点:

  1)pc,app,pad多端适应

  2)SPA开发模式开始流行

    单页面应用。最流行的方式就是前后端分离,后端提供接口

  3)不分离情况下,前后端开发职责不清

  4)开发效率问题,前后端互相等待

  5)前端一直配合着后端,能力受限

  6)后台开发语言和模板高度耦合,导致开发语言依赖严重

 2、前后端分离缺点:

  1)前后端学习门槛增加,后端的if else语法。这些根据数据展示页面交给前端做了

  2)数据依赖导致文档重要性增加,以前交给后端,后端一个人看懂

  3)前端工作量加大

  4)seo的难度加大,爬虫请求不到数据。有专门的优化

  5)后端开发模式迁移增加成本

restful api

 restful api 目前是前后端分离最佳实践(一套标准,建议)

  1. 轻量,直接通过http,不需要额外协议,post/get/put/delete操作
  2. 面向资源,一目了然,具有自解释性。

 资源是名词,post等是动词

restful api设计细节

1、协议

 API与用户的通信协议,总是使用HTTPs协议。

2、域名

 应该尽量将API部署在专用域名之下:

  https://api.example.com

 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下:

  https://example.org/api/

3、版本

 应该将API的版本号放入URL:

 https://api.example.com/v1/

 另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。Github采用这种做法

4、路径

 在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。  

  • https://api.example.com/v1/zoos
  • https://api.example.com/v1/animals
  • https://api.example.com/v1/employees

5、HTTP动词

GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。

6、过滤信息

?limit=10:指定返回记录的数量
?offset=10:指定返回记录的开始位置。
?page=2&per_page=100:指定第几页,以及每页的记录数。
?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
?animal_type_id=1:指定筛选条件

参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?zoo_id=ID 的含义是相同的。

7、状态码

200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功

8、错误处理

 如果状态码是4xx,就应该向用户返回出错信息。一般来说,返回的信息中将error作为键名,出错信息作为键值即可。

{error: "Invalid API key"
}

9、返回结果

 针对不同操作,服务器向用户返回的结果应该符合以下规范。

GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档

10、Hypermedia API

 RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。

 比如,当用户向api.example.com的根目录发出请求,会得到这样一个文档。

{"link": {"rel":   "collection https://www.example.com/zoos","href":  "https://api.example.com/zoos","title": "List of zoos","type":  "application/vnd.yourformat+json"
}}

11、其他

(1)API的身份认证应该使用OAuth 2.0框架。

(2)服务器返回的数据格式,应该尽量使用JSON,避免使用XML。

restful api 相关,推荐阅读:

  restful api设计指南

  


vue基本概念介绍

1、前端工程化

 类似后端工程化

2、数据双向绑定

 mvvm(模式、框架):数据驱动view,view又反过来作用数据

3、组件化开发

 组件化开发,开发单个组件,组件化,可以单独移植到其他项目应用,不需要跟bootstrap一样,引入个组件就需要引入库各种数据

vue开发中的几个概念:

1、webpack

 重要,属于js工具;webpack将所有东西打包变成一个js文件。

2、vue vuex(组件通讯) vue_router(单页面的路由) axios

 前端内部自己跳转,发送ajax请求。不推荐操作dom。
 jQuery导入进来只用ajax。不如axios。

3、ES6, babel

 es6语法。babel将es6转换为es5。


vue项目的目录结构

 vue的组件方案

 babel配置文件

 mock数据

 

  • api就是我们现在请求网络的api,所有组件的api通过这个设置。
  • axios设置了全局拦截401
  • components是基础组件
  • router 路由
  • style 全局静态文件

views中可以看到我们所有组件。

  • header组件。
  • 轮播图
  • 新品
  • 分页组件
  • 个人中心三组件
  • 结算组件

转载于:https://www.cnblogs.com/Eric15/articles/9527556.html

vue+django2.0.2-rest-framework 生鲜项目(三)相关推荐

  1. vue+django2.0.2-rest-framework 生鲜项目(八)

    vue+django2.0.2-rest-framework 生鲜项目 一.支付宝沙河环境配置 线上正式: 进入蚂蚁金服开放平台(https://open.alipay.com/platform/ho ...

  2. 推荐10个Vue 3.0开发的开源前端项目

    Vue 是一款用于构建用户界面的 JavaScript 框,它基于标准 的HTML.CSS 和 JavaScript 构建,并提供了一套声明式的.组件化的编程模型,用以帮助开发者高效地开发用户界面.目 ...

  3. vue+django 生鲜项目 (二)

    vue+django2.0.2-rest-framework 生鲜项目 一.项目初始化  1)window下安装虚拟环境 mkvirtualenv -p=C:\Python3.6\python.exe ...

  4. Vue 3.0 全家桶

    vue: Beta vue-router: Alpha vuex: Alpha vue-class-component: Alpha vue-cli: Experimental support via ...

  5. 【Python3.6+Django2.0+Xadmin2.0系列教程之一(入门篇-上)】环境搭建及项目创建

    由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理.最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧. 好了,话不多说,下面开始进入正题: 转载请注明 ...

  6. 【django轻量级框架】(Python3.6.8+Django2.0)第一个Django项目与基础环境搭建

    一.前言 Django 是一个开放源代码的 Web 应用框架,由 Python 写成.采用了 MTV 的框架模式,即模型 M,模板 T 和视图 V.当然,网上也有人说 Django 采用了 MVC 的 ...

  7. 一、【用django2.0来开发】 环境部署和初始化项目

    发现网上没有什么比较好的django系列的教程, 所以打算写一整套教程来教会大家如何使用django2.0 整个教程都会围绕一个开发一个项目来完成, 这一篇主要就是讲清楚整个环境以及初始化下项目, 以 ...

  8. [vue] 从0到1自己构架一个vue项目,说说有哪些步骤、哪些重要插件、目录结构你会怎么组织

    [vue] 从0到1自己构架一个vue项目,说说有哪些步骤.哪些重要插件.目录结构你会怎么组织 1 项目类型 前端的项目目前来看主要分为小程序开发,H5页面开发.PC官网.后台管理系统开发.Nativ ...

  9. Vue 2.0 真实点餐项目实战

    1 常见的七种排序算法解析 作者简介: 耀升,一线互联网公司 Android 架构师,做过十余个项目,丰富的项目管理经验.热爱技术分享,活跃于 CSDN 和知乎. Chat 简介: 在面试中一问到排序 ...

最新文章

  1. 量化人类社会交互行为
  2. Win10开始菜单中的天气不更新问题的解决方法
  3. 离个职居然还用上了叫号机,差点以为在医院...
  4. 四位达林顿_ULN2069B - 80 V - 1.5 A四路达林顿开关 - STMicroelectronics
  5. vue+springboot图片上传,addResourceHandlers调用无效
  6. 【必看】如何向女朋友解释TCP的三次握手和四次挥手
  7. 搞懂这些SQL优化技巧,面试横着走
  8. uva 1312——Cricket Field
  9. Java工作笔记-AJAX实现整体不变,局部更新(与整体刷新比较)
  10. 苏宁易购:全国1071万高考生可免费领取SUPER会员
  11. ASN1对象与OID之间转换的函数
  12. ceph搭建_【实战演练】基于各种存储模拟器与软件存储的存储实验07-Ceph分布式存储的3种存储类型使用方法...
  13. 计算机网络-自顶向下方法 第五章课后习题答案(第七版)
  14. Base32编码转换
  15. 计算机键盘能直接接手机吗,手机变电脑!智能手机外接键盘和鼠标的3种方法...
  16. 怎样理解OOP?OOP又是什么?
  17. 装了svn桌面右键没有_右键菜单没有svn选项怎么办|win7 svn没有右键菜单怎么解决|svn添加到右键菜单方法...
  18. 编译hostapd时,出现错误:/usr/bin/ld: cannot find -lnl
  19. c语言中的static inline
  20. ansible的使用

热门文章

  1. 萧伯纳:劳动和运动(转)
  2. javaScript 美化上传文件框
  3. 微信公众号开发002-微信网页授权
  4. 有趣的python typosquatting不赚钱
  5. python 推箱子实验开发报告,python实现推箱子游戏
  6. 酷友观点/经验:iphone 5\6\6p各尺寸参照图(原创)
  7. 急诊与灾难医学-重点以及习题
  8. 基于双层优化的微电网系统规划设计方法matlab程序(yalmip+cplex)
  9. Linux中的括号用法
  10. 345. Reverse Vowels of a String(python+cpp)