# vgis_django_service **Repository Path**: gisfanmachel/vgis_django_service ## Basic Information - **Project Name**: vgis_django_service - **Description**: 对官方django进行了扩展,增加了很多实用功能,可直接用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-17 - **Last Updated**: 2025-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1.部署说明 ## 1.1 主要包安装 >django安装最新包,完整包见requirements.txt ## 1.2 license包下载 >pip install license-authorize==1.0.4 -i https://pypi.python.org/simple/ --- # 2.django说明 [django官网](https://www.djangoproject.com/) ## 2.1新建项目 >django-admin startproject my_project ## 2.2新建app >python manage.py startapp my_app ## 2.3 数据库更新 ### 2.3.1 models类修改后,同步数据库 >python manage.py makemigrations
>python manage.py migrate ### 2.3.2或者已有数据库,同步 models类 >python manage.py inspectdb
>python manage.py inspectdb >my_app/models2.py ### 2.4 代码结构 > 共用urls类型 > 写自己的seririlzer类、models类、view类、manage类、utils类 > ## 2.5启动服务 > 通过django的runserver启动 > python manage.py runserver 0.0.0.0:10876 无数字证书启动 > python manage.py runserver_plus --cert server.crt 0.0.0.0:10876 有数字证书启动 > python manage.py runsslserver --certificate server.crt --key server.key 0.0.0.0:10876 > > 通过waitress启动 > https://docs.pylonsproject.org/projects/waitress/en/stable/runner.html > 代码方式 > python run.py > 命令行方式 > waitress-serve --port=10876--host=0.0.0.0 --threads=8 my_project.wsgi:application > 启动后会在后台产生一个waitress进程 > > nginx方式 > 启动多个django服务(不同的端口) > 然后通过nginx进行负载均衡 --- # 3.定制说明 >* 已包含了基础的用户信息表
>* 定制修改my_project,my_app,my_static,my_api为自己需要的项目信息 >* 设计好数据库模型,导出sql语句 定义自增长主键,生成数据库 >* 通过代码自动生成器生成相关model,view,serializer等代码片段 >* 数据表录入一条初始化数据 >* 通过代码自动生成器生成postman测试用例,并将里面的/api/和"api"更新的的自己的 --- # 4.已扩展 >* 增加了自定义的日志类
>* 增加了自定义的token授权类,token过期时间
>* 增加了软件试用license控制
>* 增加了长时间未登录的自动退出 >* 增加了多处登录的提示,只允许一处登录 >* 增加了强制登录 >* 实现了增加,更新,删除等view的重载 >* 增加了请求参数解密,响应结果加密功能 >* 增加登录密码失败次数过多后的锁定功能,指定时间后解锁 >* 增加了是否开启验证码功能 >* 增加Token-key的配置 >* 增加并发访问waitress >* 增加代码pyc批量编译 >* 增加代码pyd批量编译 >* 增加django postgis支持 >* 增加websocket支持,需要配合redis缓存使用 >* 授权文件配置到代码目录外部 >* 存储高频访问的数据:利用Redis进行高效缓存 >* 增加多线程 >* 增加了对配置文件中的引用key(用于加密算法)的生成,及对代码引用的第三方appkey的加解密 >* 增加分页查询 --- # 5.待优化: >+ 提高代码执行效率:稳定大数据量逻辑用c/c++写,cpython处理代码转换 >+ 利用ElasticSearch进行全文检索 >+ 支持数据库存储过程的调用,数据库事务 >+ 支持异步调用 >+ 静态文件服务单独抽出来 >+ 内存优化:禁止垃圾回收来优化内存使用率 >+ 使用异步任务,将耗时的任务转换为异步任务,避免阻塞主线程,比如Celery和Dramatiq;Gearman 执行推送通知和异步任务 >+ 优化数据库访问:优化查询,模板缓存,查询缓存,Pgbouncer进行数据库连接池化,支撑分布式数据库。 >+ 数据备份:Postgres 和 Redis 都在主副本设置中运行,并使用EBS(弹性块存储)快照来频繁备份系统。>+ >+ 代码执行监控:Sentry 实时监控 Python 错误 Pingdom 用于外部服务监控,PagerDuty 用于处理事件和通知。 >+ 使用cdn加速静态资源的传输,减轻服务器的负载 >+ 调整服务器配置:使用负载均衡(nginx,haproxy)分发请求 --- # 6.说明 > 支持python3.8,3.9,3.10 > 支持django3.*,4.* --- # 7.项目定制 > 修改my_app/my_static为项目名称,并做全文替换my_static为新名称 > 修改settings文件里的数据库配置 > 修改my_app/urls.py里的my_api为项目api --- # 8.vgis库更新 > pip install --upgrade vgis_utils vgis-office vgis-log vgis-database vgis-code vgis-ai vgis-encrption license_authorize -i https://pypi.python.org/simple/