V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  siteshen  ›  全部回复第 9 页 / 共 22 页
回复总数  435
1 ... 5  6  7  8  9  10  11  12  13  14 ... 22  
1. 写出能按距离排序的 SQL 语句;
2. 翻译成对应的 python 代码。

不考虑性能的话:
1. sql_let ordering = ((long - ${x})^2 + (lat - ${y})^2)
2. select * from branch order by ordering where ordering < {distance} desc
3. Branch.objects.filter(RAW_SQL('((long - %s)^2 + (lat - %s)^2) < %s') % (x, y, distance))

另外不知道你生成的 SQL 是怎么样的?看样子是把 `Distance()` 直接当成字符串直接传入到 SQL 语句了。这里需要知道 Distance('location__coordinates', user_coordinates) 对应的 SQL 语句类型(比如是 float ?),然后传入值时也变成对应类型,大约类似这样: `objects.filter(Distance('location__coordinates', user_coordinates) < distance.metres)`
2018-05-11 09:30:51 +08:00
回复了 SingeeKing 创建的主题 Python 一段有趣的代码
无数人讲过 python 默认参数的“坑”了,我提供另外一个思路,函数尽量不要有副作用。这样无论 python 内部怎么实现,都不会出现问题(当然如果是性能不足,肯定需要研究语言的实现机制)。
2018-05-07 09:25:23 +08:00
回复了 lcj2class 创建的主题 程序员 大家平时 coding 时都收藏了哪些提高效率的小工具
;; 我通常用的这个 https://www.epochconverter.com/
;; 如果只需要查看,可以用更简单的函数
(format-time-string "%FT%T%z" (number-at-point))

;; (describe-function 'format-time-string)
;; For example, to produce full ISO 8601 format, use "%FT%T%z".
2018-05-07 08:59:55 +08:00
回复了 chenqy930 创建的主题 NGINX ngnix 做代理的问题
没在 nginx 中实现过这么复杂的逻辑,用 lua 应该能做到。可以考虑直接在 A 服务器代码中请求 B 服务器是否有权限。
2018-05-07 08:53:44 +08:00
回复了 Magentaize 创建的主题 程序员 swagger codegen 能不能差分更新 api,而不是重新生成一个?
没找到好的办法,所以我是根据代码生成 swagger.json 文件。比如使用(或者自己实现)类似这样的库:
https://github.com/MarkSonghurst/swag
2018-05-03 15:14:35 +08:00
回复了 kuoruan 创建的主题 程序员 如何才能减少代码的嵌套层级?
楼上说的“最简单的,反过来判断不就行了”,其实说的是 `early return`。
其他的回答 Promise async/await 等完全是另外一个话题。
按照这个思路重构代码会清晰很多,刚刚写了个例子供参考。

```js
// origin source code
function doSomething() {
if (cond1) {
success1();
if (cond2) {
success2();
if (cond3) {
success3();
} else {
fail3();
}
} else {
fail2();
}
} else {
fail1();
}
}

function betterDoSomething() {
if (!cond1) {
fail1();
return;
}
success1();

if (!cond2) {
fail2();
return;
}
success2();

if (!cond3) {
fail3();
return;
}
success3();
}
```
2018-04-30 15:56:19 +08:00
回复了 xiangyuecn 创建的主题 程序员 眼看就要有大的收获,怎奈 bug 太多,纯真无码
@haxiwa 虽然我不清楚一天打两次农药有没有问题,但我知道不是每个人家里都有上百亩地的。
坐等成都的分公司……
2018-04-26 01:44:28 +08:00
回复了 mochanight 创建的主题 Python 小白请教变量匹配和赋值
# -*- coding: utf-8 -*-

# 不是很清楚你的需求,写了个函数收集字符串中的连续数字和连续符号,供参考。
def collect(string):
operands = []
operators = []

last_symbol = ''
is_last_digit = False

for s in string:
if is_last_digit:
if s.isdigit():
# both are digist, append
last_symbol += s
else:
# digist and not digist, end scaning
operands.append(last_symbol)
last_symbol = s
else:
if not s.isdigit():
# both are not digist, append
last_symbol += s
else:
# digist and not digist, end scaning
operators.append(last_symbol)
last_symbol = s

is_last_digit = s.isdigit()

# append last symbol
if is_last_digit:
operands.append(last_symbol)
else:
operators.append(last_symbol)

return operands, operators


if __name__ == '__main__':
print(collect('(40+26*55)-1102-11'))
print(collect('40+26*55-1102-11'))

# `for` 和 `# appending last symbol` 后的 `if` 一个缩进层级,其他的缩进层级应该不需要额外的说明。
# 输出结果如下(本地没 python3 )
# (['40', '26', '55', '1102', '11'], ['(', '+', '*', ')-', '-'])
# (['40', '26', '55', '1102', '11'], ['', '+', '*', '-', '-'])
2018-04-12 06:25:34 +08:00
回复了 aice114 创建的主题 程序员 感觉自己的代码质量很糟糕怎么办?
来来来,这里提供 code review 服务。
2018-03-31 19:15:23 +08:00
回复了 biaolab 创建的主题 酷工作 [成都][比奥互联]招高级后端 Django 工程师
2018-03-31 01:37:07 +08:00
回复了 biaolab 创建的主题 酷工作 [成都][比奥互联]招高级后端 Django 工程师
工资多一些就好了
http://doc.zengrong.net/smart-questions/cn.html

提问题时,应该尽量方便回答者。比如贴出可运行的 demo 代码,你预期是什么行为,实际是什么行为。
你这样直接放一个异常,没有上下文,有人想帮助你也无能为力。
2018-01-23 20:10:15 +08:00
回复了 lianggaofeng04 创建的主题 Python 求从 Python 转 Go 的实际经验分享
原因:看好 go 的发展,原来两年多的 python 代码,业务逻辑面目全非了。
效率:
15 年早期两个人一个多月使用 clojure 初始化项目 1.5m x 2p
15 年末 clojure 不好招人,一个人用 python 花了一个多月时间重写 clojure 的项目,开始招 python 工程师。1.5m x 1p
17 年中两个人用了两个月时间用 go 重写了 python 的项目 2m x 2p

我个人看来,开发效率方面差不多。go 花的时间更长,一方面业务更复杂,另一方面还要造些轮子。

坑?不记得了,该填的都填了,填不了的都将就了。
收益?换静态语言后,感觉编译过了事情就完成一大半了。
2018-01-08 08:01:27 +08:00
回复了 Livid 创建的主题 DevOps 用 tmux 同时启动和监控后端开发环境中的所有程序
https://github.com/tmuxinator/tmuxinator 让这个更方便,可管理多个独立的 tmux session。

tmuxinator project1-dev
tmuxinator project2-stage
tmuxinator project3-prod
2018-01-07 18:19:23 +08:00
回复了 fengye1996 创建的主题 成都 成都配眼镜推荐
宝岛眼镜有点售后服务。几年前在龙泉的宝岛眼镜配过一次眼镜,一段时间后,他们打电话问过眼镜的使用情况。
2018-01-01 14:32:29 +08:00
回复了 yearliny 创建的主题 Python Django 的 models 如何实现 30 天后自动删除?
class Post(models.Model):
expires_at = DateField()


def delete_post(post):
post.update(expires_at=now() + timedelta(days=30))

def list_posts():
Post.query.filter(expires_at < now() + timedelta(days=30)).all()
@wb14123 对对对 @_@
我一般是简单的用 filter_by,filter_by 处理不了的用 filter。至于结果如何,可以配置日志看看生成的 SQL 语句。
http://docs.sqlalchemy.org/en/latest/core/engines.html#configuring-logging



另 @wb14123 我们似曾相识?
2017-12-28 13:42:23 +08:00
回复了 leisurelylicht 创建的主题 Python 求问关于 vim 编译支持 Python 的问题
别想同时支持 python2 和 python3 了,对代码和其他工具( flake8 等)要求太高。
也许可以根据「正在编辑」的文件动态设置要使用的 python 版本。

根据当前正在编辑的文件是 python2 还是 python3 (在 vim script 判断? project 判断?),然后使用对应的 python 版:

def is_python3(src):
return project_name in ['proj1', 'proj2'] or first_line.contains('python3')

if is_python3(src)
alias python = python3
else
alias python = python2
1 ... 5  6  7  8  9  10  11  12  13  14 ... 22  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2663 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 15:48 · PVG 23:48 · LAX 07:48 · JFK 10:48
Developed with CodeLauncher
♥ Do have faith in what you're doing.