关于Django升级的一些联想

本文探讨了Django在国内发展缓慢的原因,并将其与Java进行了对比。指出Django的学习曲线较高,适合小而精的团队使用,而Java则因为Spring框架的保守升级策略在国内更为流行。

        刚刚阅读完django1.11的release note,从django1.4一直用到django1.11,以及即将到来的大版本django2.0,Django的版本升级策略和国内的技术现状对比称得上是比较激进的,加上Django的功能体量又比较大,这也许是Django一直在国内难以崛起的原因:相对于国内面的技术人员现状,Django的入手是需要一定的学习曲线和入门门槛的。虽然用熟了,它的确是一个解决开发生产力问题的利器,但是这需要小而精的团队人员背景做支持,国内目前的大的技术从业人员现状一直走下坡路,小而精的团队可以说会越来越少。再就是国内大多数人的发展路线都是快速向管理线转移,导致的结果是一线缺乏资深优秀的程序员,这就导致生产一线的技术水平相对难以提高到一个比较深的境界。

      相比而言,Java虽然每个版本的更替也很厉害,但是大多数Java从业者保持1.4的语言特性使用水平也Ok。加上Spring功能升级的策略相对还是比较保守的,于是乎国内后端界主要还是Java的天下,今天先写到这儿,改日再续。

D:\Anaconda3\envs\aiproject\python.exe E:\chepai\chepai\manage.py runserver localhost:8000 Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). June 18, 2025 - 15:05:03 Django version 4.2, using settings 'chepai.settings' Starting development server at http://localhost:8000/ Quit the server with CTRL-BREAK. [18/Jun/2025 15:05:06] "GET / HTTP/1.1" 200 639 [18/Jun/2025 15:05:06] "GET /static/myapp/styles.css HTTP/1.1" 404 1807 Creating model: ('PP-LCNet_x1_0_doc_ori', None) Using official model (PP-LCNet_x1_0_doc_ori), the model files will be automatically downloaded and saved in C:\Users\联想\.paddlex\official_models. D:\Anaconda3\envs\aiproject\lib\site-packages\setuptools\command\easy_install.py:41: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html import pkg_resources D:\Anaconda3\envs\aiproject\lib\site-packages\pkg_resources\__init__.py:3142: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages declare_namespace(pkg) Internal Server Error: / Traceback (most recent call last): File "D:\Anaconda3\envs\aiproject\lib\site-packages\django\core\handlers\exception.py", line 55, in inner response = get_response(request) File "D:\Anaconda3\envs\aiproject\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "E:\chepai\chepai\myapp\views.py", line 34, in index recognizer = PlateRecognizer() File "E:\chepai\chepai\myapp\utils\plate_recognition.py", line 13, in __init__ self.ocr = paddleocr.PaddleOCR( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddleocr\_pipelines\ocr.py", line 161, in __init__ super().__init__(**base_params) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddleocr\_pipelines\base.py", line 63, in __init__ self.paddlex_pipeline = self._create_paddlex_pipeline() File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddleocr\_pipelines\base.py", line 97, in _create_paddlex_pipeline return create_pipeline(config=self._merged_paddlex_config, **kwargs) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\__init__.py", line 165, in create_pipeline pipeline = BasePipeline.get(pipeline_name)( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\utils\deps.py", line 195, in _wrapper return old_init_func(self, *args, **kwargs) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 103, in __init__ self._pipeline = self._create_internal_pipeline(config, self.device) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 158, in _create_internal_pipeline return self._pipeline_cls( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\ocr\pipeline.py", line 73, in __init__ self.doc_preprocessor_pipeline = self.create_pipeline( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\base.py", line 140, in create_pipeline pipeline = create_pipeline( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\__init__.py", line 165, in create_pipeline pipeline = BasePipeline.get(pipeline_name)( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\utils\deps.py", line 195, in _wrapper return old_init_func(self, *args, **kwargs) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 103, in __init__ self._pipeline = self._create_internal_pipeline(config, self.device) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 158, in _create_internal_pipeline return self._pipeline_cls( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\doc_preprocessor\pipeline.py", line 67, in __init__ self.doc_ori_classify_model = self.create_model(doc_ori_classify_config) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\base.py", line 107, in create_model model = create_predictor( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\__init__.py", line 77, in create_predictor return BasePredictor.get(model_name)( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\image_classification\predictor.py", line 49, in __init__ self.preprocessors, self.infer, self.postprocessors = self._build() File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\image_classification\predictor.py", line 82, in _build infer = self.create_static_infer() File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\base\predictor\base_predictor.py", line 240, in create_static_infer return PaddleInfer(self.model_dir, self.MODEL_FILE_PREFIX, self._pp_option) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\common\static_infer.py", line 274, in __init__ self.predictor = self._create() File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\common\static_infer.py", line 344, in _create config.exp_disable_mixed_precision_ops({"feed", "fetch"}) AttributeError: 'paddle.fluid.libpaddle.AnalysisConfig' object has no attribute 'exp_disable_mixed_precision_ops' [2025-06-18 15:05:16,636] [ ERROR] log.py:241 - Internal Server Error: / Traceback (most recent call last): File "D:\Anaconda3\envs\aiproject\lib\site-packages\django\core\handlers\exception.py", line 55, in inner response = get_response(request) File "D:\Anaconda3\envs\aiproject\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "E:\chepai\chepai\myapp\views.py", line 34, in index recognizer = PlateRecognizer() File "E:\chepai\chepai\myapp\utils\plate_recognition.py", line 13, in __init__ self.ocr = paddleocr.PaddleOCR( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddleocr\_pipelines\ocr.py", line 161, in __init__ super().__init__(**base_params) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddleocr\_pipelines\base.py", line 63, in __init__ self.paddlex_pipeline = self._create_paddlex_pipeline() File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddleocr\_pipelines\base.py", line 97, in _create_paddlex_pipeline return create_pipeline(config=self._merged_paddlex_config, **kwargs) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\__init__.py", line 165, in create_pipeline pipeline = BasePipeline.get(pipeline_name)( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\utils\deps.py", line 195, in _wrapper return old_init_func(self, *args, **kwargs) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 103, in __init__ self._pipeline = self._create_internal_pipeline(config, self.device) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 158, in _create_internal_pipeline return self._pipeline_cls( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\ocr\pipeline.py", line 73, in __init__ self.doc_preprocessor_pipeline = self.create_pipeline( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\base.py", line 140, in create_pipeline pipeline = create_pipeline( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\__init__.py", line 165, in create_pipeline pipeline = BasePipeline.get(pipeline_name)( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\utils\deps.py", line 195, in _wrapper return old_init_func(self, *args, **kwargs) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 103, in __init__ self._pipeline = self._create_internal_pipeline(config, self.device) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 158, in _create_internal_pipeline return self._pipeline_cls( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\doc_preprocessor\pipeline.py", line 67, in __init__ self.doc_ori_classify_model = self.create_model(doc_ori_classify_config) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\pipelines\base.py", line 107, in create_model model = create_predictor( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\__init__.py", line 77, in create_predictor return BasePredictor.get(model_name)( File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\image_classification\predictor.py", line 49, in __init__ self.preprocessors, self.infer, self.postprocessors = self._build() File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\image_classification\predictor.py", line 82, in _build infer = self.create_static_infer() File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\base\predictor\base_predictor.py", line 240, in create_static_infer return PaddleInfer(self.model_dir, self.MODEL_FILE_PREFIX, self._pp_option) File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\common\static_infer.py", line 274, in __init__ self.predictor = self._create() File "D:\Anaconda3\envs\aiproject\lib\site-packages\paddlex\inference\models\common\static_infer.py", line 344, in _create config.exp_disable_mixed_precision_ops({"feed", "fetch"}) AttributeError: 'paddle.fluid.libpaddle.AnalysisConfig' object has no attribute 'exp_disable_mixed_precision_ops' [18/Jun/2025 15:05:16] "POST / HTTP/1.1" 500 213937
06-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值