V2EX kellyl 的所有回复 第 1 页 / 共 2 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    kellyl    全部回复第 1 页 / 共 2 页
回复总数  27
1  2  
2016-10-30 23:39:47 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘 Python Web 工程师 机智云物联网平台
2016-10-30 12:38:49 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘 Python Web 工程师 机智云物联网平台
暂不考虑实习,谢谢各位
问题 +1
2016-07-13 10:22:05 +08:00
回复了 wakcc 创建的主题 酷工作 广州一年半前端求职
简历发到 kli[at]gizwits.com
2016-07-07 18:57:47 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘前端开发工程师 机智云
@Static2015 可以
2016-07-07 11:29:27 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘前端开发工程师 机智云
@Static2015 招的
2016-07-07 11:28:53 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘前端开发工程师 机智云
@lyp111332 暂时不需要实习的。
2016-07-06 22:16:26 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘前端开发工程师 机智云
@scarlex 不算不算,快来简历 : D
2016-07-06 21:17:32 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘前端开发工程师 机智云
@shenqi 不带这样,要给广告费啊
2016-07-06 21:16:02 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘前端开发工程师 机智云
@scarlex 一个例子是过度使用语言的高级特性,欠缺考虑代码的易读性和可维护性。
2016-07-06 21:12:33 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘前端开发工程师 机智云
@kingze1992 可以发简历过来看下
2016-07-06 17:15:51 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘前端开发工程师 机智云
2015-09-11 16:15:06 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘 Python 开发工程师 机智云物联网平台
@mengzhuo 我们的长链接服务器使用 Erlang 实现,部分业务使用 RabbitMQ/MQTT 。我们 Python 和 M2M 服务器交互会使用到 Websocket 和 MQ , MQ 机制在 python 使用在跟大数据交互处理时也会用到(我们有专门的大数据部门)。

Django 主要使用在 HTTP 的业务场景,比如网站开发和开发 API 开发。
2015-09-11 16:06:13 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘 Python 开发工程师 机智云物联网平台
@poke707 我们会有一个演讲分享
2015-09-10 13:31:11 +08:00
回复了 kellyl 创建的主题 酷工作 [广州] 招聘 Python 开发工程师 机智云物联网平台
@szm0816 欢迎优秀的应届生
2015-05-20 10:48:39 +08:00
回复了 OldPanda 创建的主题 Python 有没有比较好用的支持 markdown 语法的文本框
这跟Python没关系啦。预览的话使用前端markdown库,后端保存用户输入的原始值。读取的话,可以前端编译,也可以后端编译返回。
https://github.com/chjj/marked
https://github.com/evilstreak/markdown-js
2015-05-19 17:28:43 +08:00
回复了 cc7756789 创建的主题 Python Django, 基于类的视图如何继承基类的属性
@cc7756789,如果你想得到大家的帮助,首先要把问题内容格式整理好。V2EX支持markdown语法。

建议问题标题修改为「django视图类继承DetailView和TemplateView后报错」,你的问题代码可以格式化如下

<pre>
class Links(TemplateView):
_____template_name = "home/links.html"

_____def get_context_data(self, **kwargs):
__________cOntext= super(Links, self).get_context_data(**kwargs)
__________context['link'] = Friend_Links.objects.all()
__________context['latest_article_list'] = latest_article_list
__________context['now'] = time.strftime('%Y-%m-%d %X', time.localtime())
__________context['ip'] = self.request.META['REMOTE_ADDR']
__________return context

class Detail(DetailView, Links):
_____model = Article
_____context_object_name = "ar"
_____template_name = "home/detail.html"

_____def get_context_data(self, **kwargs):
__________cOntext= super(Detail, self).get_context_data(**kwargs)
__________context['latest_article_list'] = latest_article_list
__________context['now'] = time.strftime('%Y-%m-%d %X', time.localtime())
_____return context
</pre>


这是典型的多重继承方法属性读取顺序问题。在Python里叫"Method Resolution Order",Python的继承多重继承机制请看参考阅读(如果经常写Python面向对象的代码,一定要弄明白多重继承中C3线性继承的使用)。

我们来看一下Detail类的MRO。
>>> Detail.__mro__

....(Detail,
.... django.views.generic.detail.DetailView,
.... django.views.generic.detail.SingleObjectTemplateResponseMixin,
.... gizwits_developer.views.Links,
.... django.views.generic.base.TemplateView,
.... django.views.generic.base.TemplateResponseMixin,
.... django.views.generic.detail.BaseDetailView,
.... django.views.generic.detail.SingleObjectMixin,
.... django.views.generic.base.ContextMixin,
.... django.views.generic.base.View,
.... object)

当页面打开Detail页面时,发生了:

1. django调用视图的self.get方法
2. 根据mro找到django.views.generic.base.TemplateView.get方法,在get方法中调用self.get_context_data(**kwargs)
3. 根据mro,分别调用Detail, DetailView...中的get_context_data,当调用到django.views.generic.detail.SingleObjectMixin.get_context_data时,代码读取`self.object`,但是此时self中没有`object`属性,页面报错。因为`self.obejct`的赋值是在`django.views.generic.detail.BaseDetailView.get`做的,但是get方法被`django.views.generic.base.TemplateView.get`拦截了,导致执行不到。

如何解决(方法很多,这里简单列出两个面向对象的方法实现):

1. 调整__mro__中get的顺序。不建议。因为复杂的mro并不能够简单通过Detail(Links,DetailView)改为Detail(DetailView, Links)能够掉整的;在Detail类复写get也能够解决,但后期代码难维护。
2. 将TemplateView在__mro__中移除。这是我个人建议的方法。其实问题产生的原因是Links和DetailView都是TemplateResponseMixin的子类,交叉继承导致的。DetailView本来就有TemplateView的功能,再次继承的话容易出问题。

解决方法(使用复用的contextMixin类):

<pre>
class LinksContext(ContextMixin):

_____def get_context_data(self, **kwargs):
__________cOntext= super(LinksContext, self).get_context_data(**kwargs)
__________context['link'] = Friend_Links.objects.all()
__________context['latest_article_list'] = latest_article_list
__________context['now'] = time.strftime('%Y-%m-%d %X', time.localtime())
__________context['ip'] = self.request.META['REMOTE_ADDR']
__________return context

class Links(TemplateView, LinksContext):
_____template_name = "home/links.html"

class Detail(DetailView, LinksContext):
_____model = Article
_____context_object_name = "ar"
_____template_name = "home/detail.html"

_____def get_context_data(self, **kwargs):
__________cOntext= super(Detail, self).get_context_data(**kwargs)
__________context['latest_article_list'] = latest_article_list
__________context['now'] = time.strftime('%Y-%m-%d %X', time.localtime())
_____return context
<pre>


参考阅读:
http://python-history.blogspot.com/2010/06/method-resolution-order.html
https://www.python.org/download/releases/2.3/mro
2015-05-19 16:37:22 +08:00
回复了 gkiwi 创建的主题 分享发现 v2ex 支持 markdown 了!!
1
2015-05-19 16:30:00 +08:00
回复了 gkiwi 创建的主题 分享发现 v2ex 支持 markdown 了!!
&nbsp;&nbsp;1
015-05-19 16:28:56 +08:00
回复了 gkiwi 创建的主题 分享发现 v2ex 支持 markdown 了!!
&bsp;&bsp;&bsp;
1  2  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4510 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 36ms UTC 09:57 PVG 17:57 LAX 01:57 JFK 04:57
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86