前阵子朋友介绍了一个活儿:帮他们搭一个面向国外客户的宠物用品外贸独立站。价格不高,答应下来主要是想练手——预算900元,要求别太高,核心是能看东西、能询盘,还有后台管理。项目技术栈给自己定了个小目标:Python + React + MySQL,既沿用了熟悉的,也尝试点没在主业里实际落地过的新东西。
系统演示地址
项目启动 第一步和甲方老板确认下需求。他说不用太复杂,简单好用最好。产品大致有两三百种,分不同品类;要求英文界面,客户可以询盘,后台能基础管理(CRUD、订单查阅)。 小作文写完,开始筹划技术方案:
后端:Django Rest Framework(熟练、快速出活,还自带后台管理) 前端:React(create-react-app,上手快,也方便后期交互效果扩展) 数据库:MySQL(开源好用,便于后期数据迁移) 数据库建模 简单画了ER图,主要四张表:
Product(产品表) Category(品类) User(管理员/客户) 用Django的models快速生成,再迁移到MySQL。
接口开发 用了Django Rest Framework,写了一套RESTful API。仔细给每个接口写了英文文档,用的是Swagger自动生成的方法,方便给老板(其实是他未来的技术同事)查阅对接。
前端开发 用create-react-app起了项目骨架,四个主页面:
首页(轮播Banner、品类/热品推荐) 产品列表/详情 Backend管理页(登录后可见) 样式用的antd + 自己调色。为保证加载速度,图片SEO做了点小功夫(国外站点,图片尽量CDN+webp)。
功能踩坑 国际化:用了react-intl包,抽取了基础文案。 后台管理:Django admin真香,配个权限完美搞定。 部署上线 用了一台阿里云香港小服务器跑docker一键部署:
Docker Compose一个mysql,一个django,一个nginx转发静态和API 前端build后NGINX静态托管,API转发走Django
现在该网站已经被谷歌收录。