不要学了两天PYTHON,就一时冲动从事IT业
bigegpt 2024-09-27 00:40 3 浏览
前言
我除了是摄影师,其实我还会编程,但,我没有进IT公司,而是在一家国企,编程现在不过是我的爱好[捂脸]。
这篇文章,是对我最近开发的一个基于VUE和PYTHON小项目的一个简单记录,一来是方便日后查询,同时也是一篇劝退文章,针对当前严峻的就业形势,有些中青年无路可走,想投身IT行业,虽然IT业也遇到寒冬,企业大量裁员,但貌似仍然是收入不错的行当;又听说如今Python与人工智能、大数据等较为火热的领域结合紧密,于是或自学,或参加各类培训班。
对于那些感兴趣,认真学习锤炼的朋友来讲,我没有什么好讲的,祝好运(尽管前途多艰,其实也想劝退,但一两句话也说不完[捂脸]),但对于那些学了几天Python,会编写和运行两个python函数,就觉得Python不过如此的人来讲,我真心劝你再认真考虑考虑,自己是不是对于Python存在错误的认识,尤其是把它和自己的谋生手段绑定一起,会不会有些太草率了。
下面通过这个小项目的一个简单记录,请那些学了两天Python的可以自我衡量一下,当然你没必要看完,就是告诉一些朋友,只是学了python是不够的,它只是一种语言而已,从计算机诞生到现在,编程语言多如牛毛,除了python,如果你想要做应用,还要学习其它语言,系统,算法,框架,数据库等等,绝对不是你会编写两个函数可以搞定的,如果你还没开始太多,放弃吧,可以考虑其它行业,以免陷的太深,浪费时间金钱和精力,比如我国在历年重大会议上多次提到,农业是根本,不如考虑一下特色农业之类的,或许能闯出一片蓝天,当然,这只是建议啊[捂脸]。
项目需求
这个项目满足某单位的一个简单的事务处理需求,因为该单位近几年事务日趋繁杂,各类检查,督办,部署,活动增多,每项事务又都要求整个事务链条上的一个闭环的结果,往往以文件,报告的形式表现出来,过去,因为没有一个合适的系统,来配合这些事项的执行,经常出现,一项事情快到期了,才想起来要上报,于是仓促间突击两三天,赶出来一个报告上交,这不仅影响报告的质量,最关键的是使得事务的实际执行办理效果大打折扣,而且还会给下面各接口办事人员疲于奔命的感觉。
因此,需要有一个协同系统,将每一个事务的生成,派发,执行,监督,结果管理起来,并形成一个闭环链条,这样可以大大提高事务的处理能力和效率,减少错漏忘的发生,从而整体提升该公司安全事务的管理水平。
概要设计
根据上述需求,进行了简单的系统概要设计,其中数据库设计较为简单,关键就是事务主表的设计,其它附表都是针对事务处理流程的,设计的时候要考虑性能和实现的复杂度,比如在不影响完整性的前提下,可以适当冗余来方便后期编码。
系统架构设计
系统采用MVC架构,前端为VUE框架,后端为DJANGO框架,数据库使用MYSQL,服务器操作系统为Centos7。
为进一步降低前后端耦合,且一定程度提高性能,前后端部署在不同的WEB服务器上,前端服务器为NGINX,后端为 uwsgi,所有静态页面都由Nginx负责响应,Nginx通过反向代理uwsgi来运行动态页面和支持API后端调用。具体配置见后文的“服务器机器系统准备”。
系统编码设计及最终效果图
前端基础框架为VUE,组件为Element-plus,要求熟悉JS和HTML及CSS和VUE模板语言,要求能看懂成熟的基于VUE的后端管理框架。
后端框架为DJANGO,要求熟悉PYTHON语言和DJANGO的路由机制,其中要求熟悉PYTHON的设计模式。
服务器机器系统准备
1.安装虚拟机centos7
因为开发的机器系统是windows,因此,开发完毕后,需要发布到生产系统上,生产系统需要centos,所以预先在本机安装centos7虚拟机,测试整个部署过程。
2.安装完毕配置网络地址:
vi /etc/sysconfig/network-scripts/ifcfg-ens33 ,修改ifcfg-ens33配置文件,
设置动态地址
bootproto=dhcp
onboot=yes
或者指定IP地址
bootproto=static
onboot=yes
在最后加上几行,IP地址、子网掩码、网关、dns服务器
IPADDR=192.168.1.160
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=119.29.29.29
DNS2=8.8.8.8
输入systemctl restart network重启网络服务
服务器操作面板安装
3.堡塔面板安装:
从堡塔主页下载安装软件,安装完毕后设置centos系统的连接参数
登录系统后,输入下列指令在centos上安装堡塔
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
安装完毕,将用户名和密码更改
安装基础环境
4.Nginx的安装
用堡塔面板进行安装,Nginx也是后面的phpmyadmin的服务器
5.安装mysql,并导入表结构
因为开发环境设置的MySQL的字符集和生产系统略有不同,需要把脚本里的utf8mb4_0900_ai_ci替换为utf8_general_ci ,然后将utf8mb4替换为utf8
6.安装php,并安装phpmyadmin
这是为了管理Mysql,如果启动有问题,看看面板上phpmyadmin里面的php版本,有没有选择合适版本。
7.安装python3.11
稍微提一下,为什么不用堡塔搞定所有,是因为经过测试,堡塔的python项目管理模块,无法正确安装需要的python版本,也无法正确的安装和运行Django项目,这种平台,好用的地方用就好了,不好用的地方就不要用,方便也是把双刃剑。
Python3.11安装可以参考https://zhuanlan.zhihu.com/p/590965831
其中需要安装pip3,指令为 yum install python3-pip
8.安装虚拟环境virtualenv
pip3 install virtualenv
然后建立软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
mkdir -p /data/env 建立文件夹统一存放虚拟环境
切换到/data/env/下,创建虚拟环境。
virtualenv --python=/usr/bin/python3 djangoenv(这里的djangoenv名称可以自己定义但是后面步骤一定要跟你所定义的名称相同)
进入/data/env/djangoenv/bin
启动虚拟环境:
source activate
虚拟环境里用pip3安django和uwsgi
pip3 install django==3.2.16 (需要指定安装和你项目相同的版本)
pip3 install uwsgi
9.配置nginx服务器和uwsgi服务器
配置前端页面服务文件sf-front.conf,端口8080
配置nginx的后端静态文件响应配置文件sf-backend.conf(其中包含反向代理的配置),端口8000
配置nginx服务器的初始化文件nginx.ini,位置在nginx服务器的文件夹下
配置uwsgi服务器的初始化文件uwsgi.ini
其中uwsgi.ini 的配置如下:注意如果正常运行,需要删除其中的所有注释,不然会有错误提示
[uwsgi]
uid=root
master = true
processes = 1
threads =2
chdir = /www/safetyback
wsgi-file= /www/safetyback/application/wsgi.py
home=/data/env/djangoenv
socket = 0.0.0.0:888
chmod-socket = 660
vacuum = true
max-requests = 3000
buffer-size = 8192
enable-threads = true
pidfile=/www/safetyback/uwsgi/uwsgi.pid
daemonize=/www/safetyback/uwsgi/uwsgi.log
发布应用上传代码
10.上传前端代码,命名为
VUE前端项目编译:构建生产环境 npm run build,然后把生成的dist文件夹内容拷贝到生产服务器的对应文件夹safetyfront下面
尤其要注意url.js里面的域名要修改成生产地址
11.上传后端代码
文件夹命名为safetyback
python manage.py collectstatic,收集django的项目的静态文件
需要将wsgi.py文件中增加(虚拟环境和路径根据实际安装的情况填写)
import sys
sys.path.append('/data/env/djangoenv/lib/python3.11/site-packages')
在safetyback下执行pip3 freeze,得到该项目所需的安装包集合
在虚拟环境中执行pip3 install -r requirement.txt
测试服务器
12.nginx和uwsgi的启动和停止测试
#启动nginx
nginx
#重启
nginx -s reload
#关闭
nginx -s stop
#检测配置文件是否正确
nginx -t
uwsgi --stop uwsgi.pid
uwsgi --ini uwsgi.ini
uwsgi --reload uwsgi.ini
ps aux | grep uwsgi 可以用本指令查看启动的进程信息
13.开启防火墙端口和协议:
sudo firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload 重启防火墙
14.设置uwsgi 开机自启动服务
在/etc/systemd/system 目录下,创建server_uwsgi.service 文件
[Unit]
Description=uWSGI instance to serve saftyadmin
After=network.target
[Service]
[Unit]
Description=uWSGI serve Django saftyadmin
After=network.target
[Service]
WorkingDirectory=/www/wwwroot/safetyback
ExecStart=/data/env/djangoenv/bin/uwsgi --ini /www/wwwroot/safetyback/uwsgi/uwsgi.ini
ExecStop=/data/env/djangoenv/bin/uwsgi --stop /www/wwwroot/safetyback/uwsgi/uwsgi.pid
ExecReload=/data/env/djangoenv/bin/uwsgi --reload /www/wwwroot/safetyback/uwsgi/uwsgi.pid
[Install]
WantedBy=multi-user.target
将server_uwsgi.service添加到服务中:
systemctl enable /etc/systemd/system/server_uwsgi.service
之后,可以使用命令测试启动
systemctl stop server_uwsgi.service 关闭uwsgi服务
systemctl start server_uwsgi.service 开启uwsgi服务
systemctl restart server_uwsgi.service 重启uwsgi服务
这里要注意的是,uwsgi.ini文件中,不能设置
daemonize = wsgi.log
需要设置成
log = wsgi.log
这样才可以开机自启动。
写到最后
能看到这里,完全没有必要,这篇文章只是对于发布和配置基于VUE和DJANGO的项目是一个参考,因为其中的配置部分,对于初次发布这种项目的人来说,还是有坑要踩,网上的信息都是散乱的,你需要不断的摸索,当然如果旁边有高人,还是可以一问了之,但是经常的情况是,都需要自己看,自己实践,如果不是有兴趣支撑,很难坚持到最后。
因此,我奉劝那些不是真心入行的朋友,或者内心浮躁无比的朋友,认真的考虑一下,尤其是那些尚未就业,或者失业后在找工作的,自己究竟是不是做了草率的选择,考虑一下别的行业吧,计算机能带给你的,不会比搞农业更多[捂脸],如果你在国企或者体制内,那么或许可以做的很久,毕竟保暖才能思淫欲,好了,就到这里,望三思!!!
相关推荐
- 有些人能留在你的心里,但不能留在你生活里。
-
有时候,你必须要明白,有些人能留在你的心里,但不能留在你生活里。Sometimes,youhavetorealize,Somepeoplecanstayinyourheart,...
- Python学不会来打我(34)python函数爬取百度图片_附源码
-
随着人工智能和大数据的发展,图像数据的获取变得越来越重要。作为Python初学者,掌握如何从网页中抓取图片并保存到本地是一项非常实用的技能。本文将手把手教你使用Python函数编写一个简单的百度图片...
- 软网推荐:图像变变变 一“软”见分晓
-
当我们仅需要改变一些图片的分辨率、裁减尺寸、添加水印、标注文本、更改图片颜色,或将一种图片转换为另一种格式时,总比较讨厌使用一些大型的图像处理软件,尤其是当尚未安装此类软件时,更是如此。实际上,只需一...
- 首款WP8.1图片搜索应用,搜照片得资料
-
首款WP8.1图片搜索应用,搜照片得资料出处:IT之家原创(天际)2014-11-1114:32:15评论WP之家报道,《反向图片搜索》(ReverseImageSearch)是Window...
- 盗墓笔记电视剧精美海报 盗墓笔记电视剧全集高清种子下载
-
出身“老九门”世家的吴邪,因身为考古学家的父母在某次保护国家文物行动时被国外盗墓团伙杀害,吴家为保护吴邪安全将他送去德国读书,因而吴邪对“考古”事业有着与生俱来的兴趣。在一次护宝过程中他偶然获得一张...
- 微软调整Win11 24H2装机策略:6月起36款预装应用改为完整版
-
IT之家7月16日消息,微软公司今天(7月16日)发布公告,表示自今年6月更新开始,已默认更新Windows1124H2和WindowsServer2025系统中预装...
- 谷歌手把手教你成为谣言终结者 | 域外
-
刺猬公社出品,必属原创,严禁转载。合作事宜,请联系微信号:yunlugongby贾宸琰编译、整理11月23日,由谷歌新闻实验室(GoogleNewsLab)联合Bellingcat、DigD...
- NAS 部署网盘资源搜索神器:全网资源一键搜,免费看剧听歌超爽!
-
还在为找不到想看的电影、电视剧、音乐而烦恼?还在各个网盘之间来回切换,浪费大量时间?今天就教你如何在NAS上部署aipan-netdisk-search,一款强大的网盘资源搜索神器,让你全网资源...
- 使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
-
前言回顾在上一篇文章《搭建持久化的INFINIConsole与Easysearch容器环境》中,我们详细介绍了如何使用基础的dockerrun命令,手动启动和配置INFINICon...
- 为庆祝杜特尔特到访,这个国家宣布全国放假?
-
(观察者网讯)近日,一篇流传甚广的脸书推文称,为庆祝杜特尔特去年访问印度,印度宣布全国放假,并举办了街头集会以示欢迎。菲媒对此做出澄清,这则消息其实是“假新闻”。据《菲律宾世界日报》2日报道,该贴子...
- 一课译词:毛骨悚然(毛骨悚然的意思是?)
-
PhotobyMoosePhotosfromPexels“毛骨悚然”,汉语成语,意思是毛发竖起,脊梁骨发冷;形容恐惧惊骇的样子(withone'shairstandingonend...
- Bing Overtakes Google in China's PC Search Market, Fueled by AI and Microsoft Ecosystem
-
ScreenshotofBingChinahomepageTMTPOST--Inastunningturnintheglobalsearchenginerace,Mic...
- 找图不求人!6个以图搜图的识图网站推荐
-
【本文由小黑盒作者@crystalz于03月08日发布,转载请标明出处!】前言以图搜图,专业说法叫“反向图片搜索引擎”,是专门用来搜索相似图片、原始图片或图片来源的方法。常用来寻找现有图片的原始发布出...
- 浏览器功能和“油管”有什么关联?为什么要下载
-
现在有没有一款插件可以实现全部的功能,同时占用又小呢,主题主要是网站的一个外观,而且插件则主要是实现wordpress网站的一些功能,它不仅仅可以定制网站的外观,还可以实现很多插件的功能,搭载chro...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)