广东快乐十分推荐号码:the5fire的技术博客

彩票开奖查询 www.8a72.cn 关注Python、Django、Vim、Linux、Web开发、团队管理和互联网--Life is short, we need Python.


【知乎答题计划】企业使用django一般会对哪些部分进行二次开发?

作者:the5fire | 标签:   | 发布:2019-01-08 9:52 a.m. | 阅读量: 697, 650

每天抽点时间,力所能及地认真回答一两个问题。 欢迎关注、提问、邀请。

知乎问题:企业使用django一般会对哪些部分进行二次开发?

在最早之前,我们是对 Django 自带的 Admin 做了深入开发,其实也是基于它原本的逻辑,定制了CAS 认证的部分和基础的模板。 再往后我们开始使用 xadmin ,直接替代了 Django 自己的 Admin,不过即便是使用了 xadmin 也需要进行定制开发。 不过无论是对于 Django 还是 xadmin 来说,都提供了对应的接口,可以让程序员直接进行定制。对于一个通用的(Web)框架来说,不可能满足所有的需求,定制是不可避免的,就看定制的难度了。

这方面 Django 和 xadmin 做的都不错(对xadmin来说,可能你能读懂他的源代码后,会觉得,嗯,也是不错的)。 比方说题主说的中间件的部分,其实你看他的 Middleware 的实现就知道了,只需要实现对应的接口,也就是你的类实现了 _call_ 像这样:

class SimpleMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response
        # One-time configuration and initialization.

    def __call__(self, request):
        # Code to be executed for each request before
        # the view (and later middleware) are called.

        response = self.get_response(request)

        # Code to be executed for each request/response after
        # the view is called.

        return response

在通过settings.py进行配置,就ok了。比较友好。

定时任务方面,Django 本身没有这个功能,我们用过的是跟 Celery 结合。不过多机部署需要注意,要自己加锁:Task Cookbook - Celery 4.2.0 documentation 保证每次只有一个定时任务执行。

另外还有比如你要做RESTFul 接口时可能需要用到的:django-rest-framework,以及做搜索时的 django-haystack 等。

二次开发是不可避免的,强大的框架应该提供友好的定制机制,以及丰富的生态。

- from www.8a72.cn
----EOF-----

微信公众号:Python程序员杂谈



其他分类:
  • 鹿晗全新Remix专辑《Re:Play》发布 首支单曲全球上线鹿晗 专辑 2019-03-21
  • 【奋斗吧2018】风电检修工——荒原上的“听风者” 2019-03-21
  • 世界杯还可以这样看 日媒:中国AI产品抢眼亚洲电子展} 2019-02-27
  • 特朗普下令美国防部组建第六军种“太空军” 2019-02-17
  • 标致1008假想图曝光 主打小型SUV市场 2019-02-11
  • 美俄掀起新一轮互相制裁风波。 2019-02-08
  • 荷兰成国旗最大购买地-热门标签-华商网数码 2019-02-08
  • 浅析网络视频主持人的语言特点 2019-01-27
  • 防弹少年团刷新自身纪录 破亿 MV 之首出炉! 点阅 2019-01-25
  • 人民日报创刊70周年,社长李宝善提了13个“不会忘记” 2019-01-22
  • 【理上网来喜迎十九大】郑永年:希望十九大成为中华民族复兴的一个伟大转折点 2019-01-15
  • 一周人事:黑龙江、浙江等7省份12名省委常委履新 2019-01-01
  • 女子谎称刷单提成骗贫困大学生16万 用于买化妆品 2018-12-01
  • 西安体育学院体育传媒系与西部网签约校媒合作 2018-12-01
  • 网络投票刷礼物能不能帮孩子“争上游”? 2018-11-28
  • 491| 588| 130| 599| 449| 507| 977| 649| 226| 821|