小编sha*_*nus的帖子

为什么我可以连接到http://127.0.0.1:8000/但不能连接到http://192.168.1.6/

我在一台本地IP地址为192.168.1.6的计算机上运行OS X Mountain Lion(由Network实用程序和ifconfig报告)并在端口8000上运行本地(Django)开发Web服务器,我想连接到来自在同一台计算机上运行来宾操作系统的虚拟机.

在主机操作系统上(即运行在机器金属上的OS X,地址为192.168.1.6),我可以通过浏览器连接到我的测试Web服务器,导航到127.0.0.1:8000; 或localhost:8000; 但不是在使用机器的本地IP地址时.这就是令人困惑的原因:

  • 路由器没有过滤端口; 而且,为了确定,我已将其设置为明确地将端口8000和22转发到192.168.1.6; 说到22号港口,
  • 当我启动SSH服务时,我可以通过ssh 192.168.1.6连接(从命令行)
  • 这不是一个浏览器问题,因为我也无法telnet到192.168.1.6端口8000(连接被拒绝),而我可以 telnet到127.0.0.1端口8000,我也可以telnet到192.168.1.6端口22
  • 防火墙设置为关闭(如系统偏好设置中所报告)但为了更安全,我还设置了ipfw规则以允许一切通过

以下是ipfw规则:

00100 allow tcp from any to any dst-port 8000
65535 allow ip from any to any
Run Code Online (Sandbox Code Playgroud)

以下是我的测试服务器正在监听端口的额外确认:

netstat -an | grep 8000
tcp4       0      0  127.0.0.1.8000         *.*                    LISTEN 
Run Code Online (Sandbox Code Playgroud)

那么这里发生了什么?不知何故,端口22的处理方式与端口8000不同,但我能想到的每个地方都在寻找那些我找不到的差异.为什么我不能使用其本地IP地址进入该机器的端口8000?

sockets django macos networking firewall

11
推荐指数
1
解决办法
5万
查看次数

如何阻止PyCharm填充文档字符串?

如果我使用三引号将方法字符串添加到方法中,只要在三引号后面键入一个空格,PyCharm就会使用方法所采用的参数填充docstring,并返回一个返回值,如下所示:

def fill_blank(self, direction):
    """ 
    :param direction: 
    :return:
    """ 
Run Code Online (Sandbox Code Playgroud)

我已经搜索了PyCharm首选项中的"docstring"和"stub"并关闭了显示的所有内容,即使它似乎与这种特定行为无关; 我用谷歌搜索高低,但无法弄清楚如何让它停止.有谁知道怎么样?(这是在PyCharm CE 3.4中)

python docstring intellij-idea pycharm

10
推荐指数
1
解决办法
2713
查看次数

MySQL concat()和lower()怪异

知道为什么这个工作明智*:

mysql> select lower('AB100c');
+-----------------+
| lower('AB100c') |
+-----------------+
| ab100c          |
+-----------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

但这不是吗?

mysql> select lower(concat('A', 'B', 100,'C'));
+----------------------------------+
| lower(concat('A', 'B', 100,'C')) |
+----------------------------------+
| AB100C                           |
+----------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

*明智地='我认为应该有效的方式'.

mysql

8
推荐指数
1
解决办法
3796
查看次数

如何迭代优化MySQL查询?

我正在尝试迭代地优化缓慢的MySQL查询,这意味着我运行查询,获取时间,调整它,重新运行它,获取时间等等.问题是时间是非静止的,后来执行的查询与早期执行的执行方式非常不同.

我知道在执行之间清除查询缓存或关闭它.我也知道,在某种程度上,操作系统会以MySQL无法控制或理解的方式影响查询性能.但总的来说,我能做的最好的是这种迭代查询优化,这样我可以比较苹果和苹果吗?

mysql caching query-optimization

6
推荐指数
1
解决办法
279
查看次数

难以理解的Mathematica7 DumpSave []问题

我有一个非常大的浮点图像数据:

In[25]:= Dimensions[daylightImgd]
Out[25]= {18, 2002, 2989}

In[26]:= daylightImgd[[1, 1]][[1 ;; 10]]

Out[26]= {0.0122293, 0.0104803, 0.0103955, 0.0115533, 0.0118063, \
0.0120648, 0.0122957, 0.011398, 0.0117426, 0.0119997}
Run Code Online (Sandbox Code Playgroud)

我可以使用DumpSave a la成功地将整个图像阵列保存到磁盘:

DumpSave["thisWorks.mx", daylightImgd]
Run Code Online (Sandbox Code Playgroud)

倾倒这个巨人(861兆字节文件)只需不到10秒.如果我对这些图像进行下采样,则la:

downsample[image_, f_] := Module[{w, h}, h = Dimensions[image][[1]];
  w = Dimensions[image][[2]];
  Table[image[[i, j]], {i, 1, h, f}, {j, 1, w, f}]]

In[26]:= daylightImgdDown = downsample[#, 4] & /@ daylightImgd;
In[27]:= Dimensions[daylightImgdDown]
Out[27]= {18, 500, 748}

In[28]:= daylightImgdDown[[1, 1]][[1 ;; 10]]

Out[28]= {0.0122293, 0.0118063, 0.0117426, 0.0119349, 0.0109443, \
0.0121632, 0.0121304, 0.00681408, …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

5
推荐指数
1
解决办法
232
查看次数

使用 Django 和 Apache 的非根路由

我正在尝试让 Apache 为 Django 提供服务,但我希望它比我现在实现的愚蠢方式具有更大的灵活性。目前,我的 httpd_wsgi.conf 有这一行:

WSGIScriptAlias / /Library/WebServer/Documents/acdc/apache/promotions.wsgi
Run Code Online (Sandbox Code Playgroud)

在我的项目的 urls.py 中,我有这一行:

url(r'^chicken/login/', 'login'),
Run Code Online (Sandbox Code Playgroud)

如果我在浏览器的地址栏中输入http://www.example.com/chicken/login,我就会被路由到适当的登录功能。如果 urls.py 中的所有模式都以“chicken”开头,那么一切都会正常工作。

不过,我想要的是能够切换部署此应用程序的 URL。举例来说,如果我想让http://www.example.com/monkey/login正常工作怎么办?现在我必须更改我所有的网址和所有链接,这很愚蠢。如果我更改 WSGIScriptAlias,这似乎应该是微不足道的:

WSGIScriptAlias /monkey/ /Library/WebServer/Documents/acdc/apache/promotions.wsgi
Run Code Online (Sandbox Code Playgroud)

那么我可以让我的 URL 看起来像:

url(r'^login/', 'login'),
Run Code Online (Sandbox Code Playgroud)

并摆脱耦合。问题是,经过一个小时的反复试验和研究,我无法让它发挥作用。使用之前的配置导航到http://www.example.com/monkey/login会在日志中显示以下 Apache 错误:

Target WSGI script not found or unable to stat: /Library/WebServer/Documents/acdc/apache/promotions.wsgilogin
Run Code Online (Sandbox Code Playgroud)

所以看起来“登录”路由只是被附加到启动我的 Django 应用程序的 Promotions.wsgi 文件中。

总而言之,我想让 Apache“吞掉”URL 的部分,并提供其余部分以与 urls.py 中的模式进行模式匹配。我该怎么做呢?

apache django

5
推荐指数
1
解决办法
1534
查看次数

MySQL查询使用'in'运算符:为什么不同的结果w /引号?

我已经通过两种不同的方式跟踪了一个奇怪的MySQL问题.当你煮沸所有东西时,这种方式会返回更多结果:

SELECT DISTINCT <stuff> FROM <tables> 
WHERE promo_detail_store_id in (8214, 8217, 4952, 8194, ...)
Run Code Online (Sandbox Code Playgroud)

对WHERE子句的此更改会生成这些结果的子集:

WHERE promo_detail_store_id in ('8214, 8217, 4952, 8194, ...')
Run Code Online (Sandbox Code Playgroud)

(promo_detail_store_id在MyISAM表中定义为BIGINT.)

最初store_ids的列表要长得多,而且我开始缩短它的时间并且更短的思考可能对字符串的长度有一些奇怪的限制.但不,它也适用于相当小的字符串/列表.显然,在幕后涉及类型强制的事情可能会发生,也许'in'运算符的运作方式.有人可以开导我吗?

mysql sql coercion

3
推荐指数
1
解决办法
862
查看次数

什么_really_缓存Django QuerySet?

根据(我的阅读)官方dox在这里:

https://docs.djangoproject.com/en/dev/ref/models/querysets/#when-querysets-are-evaluated

在评估Django QuerySet时应该缓存它.但事实似乎并非如此.在下面的示例中,TrackingImport是一个模型,后面有一个非常大的表.(为简洁起见,略微编辑了输出.)

recs = TrackingImport.objects.filter(...stuff...)

In [102]: time(recs[0])
Wall time: 1.84 s

In [103]: time(recs[0])
Wall time: 1.84 s
Run Code Online (Sandbox Code Playgroud)

调用len()似乎像宣传的那样工作:

In [104]: len(recs)
Out[104]: 1823

In [105]: time(recs[0])
Wall time: 0.00 s
Run Code Online (Sandbox Code Playgroud)

我不明白为什么解除引用数组没有缓存QuerySet结果.它必须评估它,对吧?那我错过了什么?

django django-models django-queryset

2
推荐指数
1
解决办法
610
查看次数