同步操作将从 GreaterWMS/GreaterWMS 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Open source warehouse management software follows MIT protocol and front-back stage decoupling method. API uses restful protocol to facilitate for add-on functions development. The html & js code is constructed with quasar(base on Vue.js v2.6.0+). According to API, it can support business models such as multi warehouse, wave shipment, combined picking and milk-run and so on.
Software copyright Code:Chine: 2018SR517685
Gitee Link:Gitee
Technical QQ community:1051907485(If you need change baseurl & title, or custom Vue, please be free to join qq group)
* Python v3.7.0 +
* Django v2.2.14(Django v2.2.14 can support Django-rest-swagger better. If you don't need Django-rest-swagger to debug api, you can pip install higher version Django)
* Django-rest-framework v3.9.2(Django-rest-framework v3.9.2 can support Django-rest-swagger better,If you don't need Django-rest-swagger to debug api, you can pip install higher version Django-rest-framework)
* Django-rest-swagger v2.2.0
* Django-silk 版本为v4.0.1(In production environment,please close silk,silk will leak user infomation)
* Quasar v1.7.2+
* Vue v2.6.0+
* API,follow restful protocol
$ pip install -r requirements.txt
安装python库
$ python manage.py makemigrations
运行数据库迁移文件
$ python manage.py migrate
创建数据库,django默认使用sqlite3作为数据库,如果需要mysql数据库,请在singosgu/settings.py里面进行配置
运行开发服务器:
$ python manage.py runserver
运行在特定端口:
$ python manage.py runserver 0.0.0.0:8001
如果运行特定端口,局域网的电脑,只需要访问,运行电脑的ip+端口,即可以访问运行页面
Nginx配置:
这里仅以Nginx配置为例,将项目下的nginx.conf替换服务器端的nginx.conf即可,注意更改nginx.conf里面的项目地址和域名
uwsgi安装:
$ pip install uwsgi
如果你使用了虚拟环境,那uwsgi的安装需要正式环境安装一遍,再在虚拟环境中安装一遍
uwsgi挂载:
$ uwsgi -x /path/to/***你的项目路径***/mysite.xml
如果不希望代码更改后,自动刷新挂载,可以把py-autoreload设置为0
uwsgi重新挂载:
$ uwsgi --reload /path/to/***你的项目路径***/mysite.pid
uwsgi已经记录了pid文件,每次重新挂载只需要reload这个pid就可以了
因为使用的前后端分离的设计,所以可以通过API,开发更多的软件应用
* AGV的项目也已经开源,由于场地受限,仅实现智能发货,定点回库,使用的循迹感应器,超声波避障感应器,红外避障感应器,所有的指令通过网络传输,AGV绑定MAC地址和IP地址,保证了安全性
* 不使用仓库设置模块,直接使用商品设置和供应商及客户设置,可以快速搭建一个进销存系统
* API的组合可以达到1万种,这样我们可以根据查询请求,来获得实时报表和数据监控
* 产品的数量,创建时间,最后使用时间是各方面统计的,所以可以方便采购计划和调拨计划进行库存的分析
* openid为用户的唯一标识,数据统一标识为appid,数据t_code为数据在服务器的唯一标识,所以很方便可以实现多仓管理
* 可以设置固定时间向服务器发出请求,从而达到波次拣货的功能
* 可以给供应商或者客户设置权限,让他们可以查询到固定产品的库存消耗
* 同上
* 库位的设置决定了拣货的效率
* statics/baseurl.js是发起请求的基本网址,如果是本地调试,则默认为http://127.0.0.1:8000/ ,如果部署在服务器,则需要将其改为你的网站访问url
* statics/title.js是软件名称,将修改主页面的软件名称
* statics/icp.js是软件的备案信息,将修改主页面的备案信息
* django-silk为开发时的调试工具,可以统计每个接口的响应速度,如果需要部署到生产环境,请删除django-silk相关配置,因为会有泄露用户信息的风险,或者直接修改django-silk,让用户只能看到自己的请求数据
* swagger会生成软件的开发者文档,访问'baseurl' + '/docs/',就可以看到具体的开发者文档,同时还可以对接口进行调试, 开发者文档使用的YML的格式,也可以自己在APIView里面修改,注意接口,get是修改get请求的API文档,post是修改post请求的API文档
* 数据库设计时考虑到数据迁移等问题,所以只有users里面的user_id和django自带的user_id做了外键,其余所有字段全部没有使用外键,方便数据备份和数据库迁移
* post,patch,put请求会传输一个数据data,可以是一个json数据,也可以是一个json数据组,传输的data会被utils/datasolve处理,来判断是否有js文件或sql注入,从而保证了后台数据库的安全性,每个前端给后端发的请求,都会核对用户的唯一标识,以防止用户数据串流
* openid是注册用户的唯一标识,当管理员直接注册时,会有developer=1这个管理员标识,管理员具备最高权限,而由管理员,或有新增用户权限的用户新建的用户,developer=0,developer作为管理员标识存在,每次向服务器发起请求,都需要url传值这个openid,服务器端会根据这个openid来判断是否为正常用户,从而保证数据不会被混乱访问,同时也可以根据openid来记录具体的访问用户,作为数据追溯依据,可以使用request.auth获得该条数据
* appid是数据源唯一标识,每次新建用户(员工账号)时,用户的appid都会统一为管理员账号的appid,从而达到了所有数据的统一性,即新用户A在发起数据请求时,会带上自己的openid,服务器端根据这个openid去链接appid下的所有数据,防止访问到其他用户的数据,可以使用request.user.appid获得该条数据
* 用户信息已经设计了权限管理,共45个,有字段aut1~~aut45,可自定义权限管理,先未对权限管理数据传输做任何限制,可自定义添加
* t_code是数据存在数据库里面的唯一标识,是具有唯一性的,所有的数据修改和删除,都是使用t_code来判断的,避免使用id判断时,会出现数据误操作,该条数据是由当时的时间戳+传入的一个string值,合并生成的MD5码
* get请求已经做好了分页设计,传值时:max_page参数为每页最大显示多少条内容,默认设计是1000条数据,因为如果数据过多,会造成数据较慢; page参数为请求第几页的数据,一般在返回的数据中,有一个totalpage参数,可以知道一共有多少页
* 一般post,patch,put是4段式设计,1--审查用户权限,会return一个值'Y' or 'N',2--审查数据的安全性, 3--审查数据是否可以存入数据库或修改数据库数据,4--新增或修改数据,并返回一个data给到前端,这样做可以避免数据增删改的时候出现误改的情况
* 数据库设计时考虑到数据迁移等问题,所以只有users里面的user_id和django自带的user_id做了外键,其余所有字段全部没有使用外键,方便数据备份和数据库迁移
* 由于小程序不支持patch请求,所以需要自信在django中设置一个views,来访问patch请求的数据
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。