V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xpresslink  ›  全部回复第 39 页 / 共 43 页
回复总数  848
1 ... 31  32  33  34  35  36  37  38  39  40 ... 43  
2018-03-11 14:32:24 +08:00
回复了 Linxing 创建的主题 Python 公司项目没人带 只能自己摸索 来问大佬们一个问题
说心理话没明白你的需求。
使用的数据库的原则就是,尽量减小 IO 交互。
方案一、一次性把要用的数据全部取出,放在内存缓存,以后不再访问数据库。
方案二、每次只取用到的最小集合。

为了支持方案二,所有数据库都支持 where 子句和 limit 语法。
select * from table limit m,n
其中 m 是指记录开始的 index,从 0 开始,表示第一条记录
n 是指从第 m+1 条开始,取 n 条。

在常见 ORM 中:
SA 用的是.filter().limit().offset() 来实现对应的 SQL
Django 的 ORM 更简洁一些,Model.objects.filter()[m:n]
一般情况下后面的 python 应用使用 uWSGI 或 gunicorn 跑在两个不同端口号上,前面用 Nginx 对不同域名反向代理 到对应的应用端口就行了。网上例子很多。
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> from itertools import groupby as gb, combinations_with_replacement as cwr
>>> from operator import mul, itemgetter as ig
>>> double_nine=lambda right: '\n'.join(map(lambda x: (lambda l: l.ljust(26) if right else l.rjust(26))(' '.join(map(lambda t: str(mul(*t)).rjust(2), ig(1)(x)))), (lambda r: gb(sorted(cwr(range(1,10),2), key=r), r))(ig(right))))
>>>
>>> print(double_nine(right=True))
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
>>> print(double_nine(right=False))
1 2 3 4 5 6 7 8 9
4 6 8 10 12 14 16 18
9 12 15 18 21 24 27
16 20 24 28 32 36
25 30 35 40 45
36 42 48 54
49 56 63
64 72
81
>>>
2018-03-11 09:58:05 +08:00
回复了 marcosteam 创建的主题 Python 如何训练新人的编程思想?
基本上培养不了,大部分是先天的。
不是每个人都适合做程序员的,计算机专业毕业的人里做程序员的也是少数。
培训班里出来的最终只有 10%不到的人能走上程序员职业道路。
2018-03-11 09:54:55 +08:00
回复了 yiran7324 创建的主题 程序员 如何从零开始写一个自己的操作系统?
一看楼主就是个正常人,开发一套操作系统程序员的三大浪漫之一啊。
程序员的三大浪漫被认为是操作系统、编译原理和图形学。
为什么呢,因为都是穷尽个人毕生精力投入未见得有什么摸得着的成果的事业。

楼主之所以有这个想法,就是因为对这件事缺少了解。
你要从问题瓶颈入手来解决而不是上来就拍脑袋用哪个方案。

你的需求不太明确,我也不了解你现有系统的架构和性能参数,所以没办法给你正确的建议。现在就能拍出具体建议的都是大神,请鄙视我。

用哪个方案和场景有关系。你要解决整体性能问题缩短运行时间,还是只是解决阻塞的问题。

另外你充分理解三种资源的特性,网络、CPU、磁盘

比如你的网络带宽 2M,要访问的服务器每个提供的下载带宽 1M。那你开两 2 线程要行了。开 30 线程完全没有用最多也就是 2M 了,这种情况下你优化磁盘写入性能不是扯么,除了扩容你的带宽你用什么也提高不了整体性能了。

如果是运算密集型的任务,比如数据要解压解密再编码,就要考虑开多进程利多核心,如果 CPU 负载很轻只是因为阻塞速度慢,你写成多进程代码要增加复杂度,白浪费精力。

磁盘是串行读写的,传统机械硬盘就一个磁头在那里寻道读写,成批量大块的连续写入方案才能提高性能,这就是为什么硬盘都有缓存。如果写入是瓶颈而你要想的不是开多个线程,而是在内存内开个更大缓存,弄个写入队列之类的。
其实真是一个东西
A 是个客户端,
import urllib.request
把这个 request 给 web 服务器 B 发送过来

在 B 服务器上
from flask import request
之后, 这个 request 的内容就是 A 发过来的 request 内容了。

明白了么?
在客户端是 sent request
在服务端是 received request
2018-03-07 20:24:20 +08:00
回复了 brcehuai8 创建的主题 Python 微信公众号接口与 hug 框架问题
都你说了,
在公众平台官网的开发-基本设置页面,勾选协议成为开发者,点击“修改配置”按钮,填写服务器地址( URL )、Token 和 EncodingAESKey,其中 URL 是开发者用来接收微信消息和事件的接口 URL
握手成功后。用户输入的文字信息会被微信服务器打包成一个 xml 文件 post 到你这人 URL 来。

<xml> <ToUserName>< ![CDATA[toUser] ]></ToUserName>
<FromUserName>< ![CDATA[fromUser] ]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType>< ![CDATA[text] ]></MsgType>
<Content>< ![CDATA[this is a test] ]></Content>
<MsgId>1234567890123456</MsgId>
</xml>
参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个 OpenID )
CreateTime 消息创建时间 (整型)
MsgType text
Content 文本消息内容
MsgId 消息 id,64 位整型

你的程序要解析这个 xml 把 content 取出来,再发给你的机器人,把回复打成 xml 包 ToUser/FromUser 对调,response 回微信服务器,要在 5 秒钟以内完成。

你仔细看一下官方文档吧。
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453
2018-03-07 11:52:42 +08:00
回复了 brcehuai8 创建的主题 Python 微信公众号接口与 hug 框架问题
关注了公众号的用户输入的信息都会被微信公众号服务器 post 到这个 url 来,用 token 握手验证只在第一次.
2018-03-07 10:03:12 +08:00
回复了 strive 创建的主题 程序员 是否该继续 PHP 还是投向 go 的怀抱?跪求各位大佬给点意见
这个还用问比继续拍黄片要强吧
数据库加密之类的也是间接加密。

明文要保证安全唯一办法就是,----物理隔离----,
也就是说放了密码的主机不能连网,同时禁用任何外接存储,禁止任何非授权的人进入机房。
要查询要在主机本地终端操作。不然谈安全都是扯淡。
2018-03-03 16:34:36 +08:00
回复了 l890908 创建的主题 程序员 mysql 如何将五百万数据的数据表重新随机排序?
首先来说,你这个做法应该不是目的。
在数据库中无论你如何随机去生成另一个表,每行记录最终都会是有一个相对固定的自然存储顺序。
一些重要的概念你要知道,random ()函数产生的伪随机数是不可以用于生产环境的抽奖之类的应用的。
如果需要获取随机样本的情况,对随机性能要求不高,性能也不需要太高时,不用改原表。
select * from table_name order by random() limit 5;
或者从调用程序中实现。如果连续 pk,使用 random.sample 之类的。不连续先要把 pk 取出一个表,再 random.sample。
pk 表可以维护在缓存里。
2018-03-03 08:00:54 +08:00
回复了 flyzy2005 创建的主题 Python Python2 与 Python3 冲突
还是你学艺不精
import sys; print(sys.path)
一眼就看出来了
2018-03-01 14:22:26 +08:00
回复了 yuhuang 创建的主题 Python django 问题咨询
没太懂你这个需求,
前端向后端请求数据直接用 ajax 本身就是异步吧还用得着 celery ?
只有前端扔给后端一个异步任务比如生成一个文件,等生成好推消息给前端。让用户去下载。
这个用 celery 的 Task Singals 来写一段 callback 去实现呗。
2018-02-27 21:42:43 +08:00
回复了 hyhcoder 创建的主题 数据库 json 数据的存储, 是放在 redis 还是数据库
建议用 postgres 9.5+版,已对 json 和 jsonb 支持相对比较完善了,至少没有其它数据库比得上。存取速度和 mongodb 不相上下,所以直接用 pg 吧。250G 对于 pg 来说只是毛毛雨。
2018-02-23 23:40:02 +08:00
回复了 zhuyw2006 创建的主题 Python 新手求助, Django 去重并统计数量的问题!
>>> MM.objects.values_list('item').annotate(Count('item'))
<QuerySet [('c', 2), ('b', 6), ('a', 4), ('f', 1), ('e', 2), ('d', 1)]>
2018-02-23 23:37:16 +08:00
回复了 zhuyw2006 创建的主题 Python 新手求助, Django 去重并统计数量的问题!
假设有这样一个只有一字段的 Model
class MyModel(models.Model):
□□□□item = models.CharField(max_length=100)
□□□□def __str__(self):s
□□□□□□□□return self.item
□□□□class Meta:
□□□□□□□□verbose_name = 'MM'

>>> from temp.models import MyModel as MM
MM.objects.values_list('item', flat=True)
<QuerySet ['a', 'b', 'c', 'd', 'e', 'a', 'a', 'e', 'b', 'b', 'b', 'b', 'f', 'a', 'c', 'b']>
>>> from django.db.models import Count
>>> MM.objects.values_list('item', flat=True).annotate(Count('item'))
<QuerySet ['c', 2, 'b', 6, 'a', 4, 'f', 1, 'e', 2, 'd', 1]>

>>> from collections import Counter
>>> Counter(MM.objects.values_list('item', flat=True))
Counter({'b': 6, 'a': 4, 'c': 2, 'e': 2, 'd': 1, 'f': 1})
2018-02-08 21:17:37 +08:00
回复了 simoncos 创建的主题 Python PyCharm 自带的 Monokai 主题看不顺眼,改了个模仿 Sublime 的版本
配色方案这个东西主观性太强了,看个人喜好吧。
Sublime Text 3 的配色比较艳丽醒目,比较适合做 Demo 用,
如果写代码初用还好,眼睛盯时间长了更易疲劳,多少有点乱心。

反观原版 MonoKai 更清淡素雅,颜色对比没有那么强烈,长时间用眼睛相对比较舒适。
全是个人看法。
先把 SCIP 英文原版的学一遍,如果能把所有练习题都做出来,那么你就是干这行的料。
然后去学习 java,C++都行,最不济来个 Python 绝对没问题。
要是 SCIP 过不了,劝退。
2018-02-08 20:16:44 +08:00
回复了 liuzl 创建的主题 Python Python 技术公众号 100 天了
大佬,公众号的后台也是用 python 开发的么?有没有技术资料分享,最好 github。谢谢
1 ... 31  32  33  34  35  36  37  38  39  40 ... 43  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6089 人在线   最高记录 6547   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 666ms · UTC 03:23 · PVG 11:23 · LAX 20:23 · JFK 23:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.