抒发一下这些天用django做web项目的一些体会

  最近接触了一段时间的python,觉得python写脚本还是挺方便的,做一个简单的桌面应用也很nice,但是随着深入,对python做功能复杂的web项目我彻底死心了​,每个环节都是一堆的坑,部署阶段更甚,我真是被折磨的没招了,打算老老实实把项目迁到nodejs上面吧。希望有经验的django开发者,能指点一二。

 

先简要描述一下我的项目,整体框架采用django,项目功能涉及:

1.读写SQL Server数据库(完成)

2.文件上传和下载(完成)

3.读写Excel,读写txt(完成)

4.加密压缩/解压缩文件(完成)

5.ftp自动化上传和下载

 

功能点虽然有点多,但涉及到的表就几个,所以并不觉得复杂。之所以选择从未接触的python,主要考虑到python写起来比较简单,其次是考虑到项目比较简单,正好试试python的水有多深。

 

下面就细数一下我踩过的坑

1.对angular等前端框架支持不好

我是一个angular重症患者,angular是我做项目的标配,不仅展示效果好,而且代码优雅。但是django却对angular支持不好,对{{}}不识别,ng-repeat没有效果。angular最出彩的就是ng-repeat了,如果连ng-repeat都不支持,也没有用angular的必要了。所以只能乖乖的用jquery框架,简直像是从文明社会回到了原始时代。

 

2.开发不复杂,部署太麻烦

在部署的过程中,公司外网不通,方便简洁的apt-get是享受不了了,所有软件都要采用源码安装的方式。

 

①如果选择windows服务器部署:

第一步:安装apache服务器

第二步:安装安装mod_wsgi,这个东西是沟通python和apache的桥梁,她的型号不仅要和apache匹配,还要和python匹配。关键是python版本太高的话,下载不到符合python版本的mod_wsgi。

第三步:配置apache,指定项目路径

我是被卡在第二步,下载不到符合python版本的mod_wsgi,最后决定在linux上部署。

 

②如果选择linux服务器部署:

之所以选在linux服务器,考虑到项目部署可以直接使用nohuo的方式挂载,我就不用安装和配置apache了。结果也是一路的坑...

  第一步:安装python。Linux服务器自带python,但是版本比较低是2.6版本的,我的项目用的版本是python3.6的,这里重新安装,经过一系列的安装和配置,把python3.6作为默认使用。这里千万别动系统自带的python2.6,不然yum就没法用了,我就是一不小心给删了,然后重装系统了。

  第二部:然后就是安装django。

搭建一个最简单的django项目,跑起来没问题,终于松了一口气,总算能跑起来一个hello word,基础环境算是准备好了。

 

加密压缩解压缩:

本以为是个zip文件,因为后缀是.zip,死活解压不了。结果我的小伙伴通过观察文件头,发现它其实是一个rar文件。python操作rar文件的包是rarfile,这个rarfile模块只能解压缩,不能压缩。最后决定选择python操作shell命令的方式压缩解压缩。rar是windows下的命令,linux需要安装linuxrar,好吧,压缩解压缩这个问题终于解决了。

操作SQL Server数据库:

本以为安装一个pyodbc就行了,结果发现linux环境下要安装:unixODBC,freetds,pyodbc 。看文档好像安装还是蛮复杂的,做到这里,我决定放弃了。考虑到后面几个功能模块没有做,真的不知道部署新版本的时候还有多少类似的工作要做。

 

心好累,相比于NodeJS和Java,jdango没有打包的概念,所有在项目中用到的包和库,都要在基础环境上安装好,项目才能跑得起来。关键好多环境还相互依赖,没有十足的耐心和能力是搞不定的。现在觉得NodeJS真好,纪念一下我在python道路上的苦逼岁月。

转载于:https://www.cnblogs.com/wuwanyu/p/6609819.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值