小编Rex*_*exE的帖子

针对小规模项目的IronPython与C#

我目前在大多数编程项目中使用Python(主要是小程序和原型的快速开发).我想花时间学习一种语言,这种语言可以让我灵活地在机会出现时使用各种Microsoft工具和API.我正在尝试在IronPython和C#之间做出决定.由于Python是我最喜欢的编程语言(主要是因为它的简洁和清晰的语法),IronPython听起来是理想的选择.在阅读了一下之后我有几个问题.

对于那些使用过IronPython的人来说,是不是已经不清楚经典Python的结束和.NET的开始?例如,.NET库和Python标准库之间的功能似乎有很大的重叠,所以当我需要进行字符串操作或解析XML时,我不清楚我应该使用哪个库.另外,我不清楚我应该在代码中使用Python与.NET数据类型.例如,我将在代码中使用以下哪项?

d = {} 
Run Code Online (Sandbox Code Playgroud)

要么

d = System.Collections.Hashtable()
Run Code Online (Sandbox Code Playgroud)

(顺便说一下,如果我做了很多像后者这样的事情,我可能会失去一些简洁性,这就是我首先支持Python的原因.)

另一个问题是,许多Microsoft的开发人员工具,如.NET CF和Xbox XNA,在IronPython中不可用.还有更多的情况,IronPython不会给我C#的全部范围吗?

.net c# python ironpython

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

如何使用app.json设置Heroku应用程序?

我正在学习有关Heroku的app.jsonapp-setups功能.我app.json在我的repo的根目录中添加了一个并将其配置为设置附加组件,env vars等.

现在我试图找出那些从GitHub本地克隆我的repo并进行一些编辑,将其部署到Heroku以及app.json进行处理的人的步骤.

Heroku的帮助文章给出了一个例子,但我觉得我可能错过了一种更简单的方法,因为(1)它使用了cURL,我的许多用户可能没有安装,(2)它依赖于repo位于可公开访问的URL而不是在本地,和(3)它比典型的Heroku命令更冗长.

有更简单的方法吗?

django heroku heroku-toolbelt

7
推荐指数
1
解决办法
1688
查看次数

ASP.NET MVC在工业中广泛使用多久了?

我正在尝试决定是否学习ASP.NET MVC(或花时间学习另一项让我感兴趣的技术).我知道这是一个优雅的框架,但如果我投资这项技能,我会尝试评估我未来的工作机会.根据您的估计,在ASP.NET MVC开发人员的需求与其他顶级Web开发框架中的开发人员相比之前,需要多长时间?这是一年的事吗?2年?3+?在相关的说明中,您是否看到在可预见的未来使用ASP.NET MVC超越了经典的ASP.NET?Scott Guthrie说两者将并存,但我很好奇ASP.NET MVC预计会分享多少精神.

我知道这是一个推测性问题; 我只对你的主观预感感兴趣.

asp.net asp.net-mvc

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

我可以以编程方式登录网站而无需以明文形式存储密码吗?

我做了很多涉及自动提交表单和/或从网站检索数据的项目.其中一些站点需要用户名/密码身份验证.(这些网站没有API,所以我依赖于屏幕抓取.)

我见过的大多数教程都将源代码中的用户名和密码存储为任何其他POST数据,例如:

string username = "someUserName";
string password = "somePassword";
// submit POST data...
Run Code Online (Sandbox Code Playgroud)

但我知道以纯文本存储密码通常是不受欢迎的.我应该使用另一种方法吗?

security authentication screen-scraping

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

Django 调试工具栏:如何分析文件下载?

我的 Django webapp 允许用户下载动态生成的文本文件:

response = HttpResponse(my_file_contents)
response['Content-Disposition'] = 'attachment; filename="my file.txt"'
return response
Run Code Online (Sandbox Code Playgroud)

我安装了 Django 调试工具栏(0.11.0,因为我无法让 1.0.1 工作),但是当我点击进行下载时,工具栏没有显示有关已下载文件的信息,大概是因为那是一个单独的页面/请求(或者可能因为它是一个非 HTML 文件)。下载的文件也不包含任何调试信息。

如何分析此文件下载的性能?

python django django-debug-toolbar

6
推荐指数
2
解决办法
287
查看次数

Django断言失败:assertInHTML('hello','<html> hello </ html>')

在Django shell中:

from django.test import SimpleTestCase
c = SimpleTestCase()
haystack = '<html><b>contribution</b></html>' 

c.assertInHTML('<b>contribution</b>', haystack)
c.assertInHTML('contribution', haystack)
Run Code Online (Sandbox Code Playgroud)

我不明白为什么第一个断言通过,但第二个断言不通过:

AssertionError                            Traceback (most recent call last)
<ipython-input-15-20da22474686> in <module>()
      5 
      6 c.assertInHTML('<b>contribution</b>', haystack)
----> 7 c.assertInHTML('contribution', haystack)

c:\...\lib\site-packages\django\test\testcases.py in assertInHTML(self, needle, haystack, count, msg_prefix)
    680         else:
    681             self.assertTrue(real_count != 0,
--> 682                 msg_prefix + "Couldn't find '%s' in response" % needle)
    683 
    684     def assertJSONEqual(self, raw, expected_data, msg=None):

C:\...\Programs\Python\Python35-32\lib\unittest\case.py in assertTrue(self, expr, msg)
    675         if not expr:
    676             msg = self._formatMessage(msg, "%s is …
Run Code Online (Sandbox Code Playgroud)

python django assert

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

如何在开发下一个版本时运行一个版本的Web应用程序?

我刚刚完成了一个Django应用程序,我希望得到一些外部用户反馈.我想推出一个版本,然后分叉私有版本,以便我可以合并反馈并添加更多功能.我打算在这个过程中做很多小的迭代.我是网络开发的新手; 网站通常如何做到这一点?是否只是将我的Django项目文件夹复制到另一个目录,在那里启动服务器,并在原始目录中继续我的开发工作?或者我想要使用版本控制系统吗?我的直觉是它是后者,但如果是这样,它似乎是一个有很多用途的巨大话题(例如协作,这里不适用),我真的不知道从哪里开始.

django version-control

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

传统兼容性的最佳做法

根据我的经验,对向后/向前兼容性的承诺是软件工程行业的镀金笼.我特别注意到文档文件格式和编程语言/ API的情况.当他们现有的数据或代码中断时,客户和合作伙伴讨厌它; 但是,如果您永远不会破坏兼容性,那么从长远来看,您可能会严重限制您的创新能力.

除了逐渐弃用旧功能外,是否有解决此问题的方法?在Windows 7的XP Mode中,虚拟化似乎是一种令人兴奋的可能性.还有其他人吗?

此外,对于我们这些想要设计尽可能面向未来的新系统的人,我们可以从过去在行业中犯下的错误中吸取什么教训?

architecture legacy compatibility

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

如何获取HTTP重定向目标的URL?

我正在编写客户端Python单元测试,以验证我的Google App Engine站点上的HTTP 302重定向是否指向正确的页面.到目前为止,我一直在打电话urllib2.urlopen(my_url).geturl().但是,我遇到了两个问题:

  1. geturl()返回的URL似乎不包含URL查询字符串,如?k1=v1&k2=v2; 我怎么能看到这些?(我需要检查我是否正确地将访问者的原始URL查询字符串传递到重定向页面.)
  2. geturl()显示任何其他重定向后的最终URL.我只关心第一次重定向(来自我网站的重定向); 在此之后,我对任何事情都不了解.例如,假设我的网站是example.com.如果用户请求http://www.example.com/somepath/?q=foo,我可能想要将它们重定向到http://www.anothersite.com?q=foo.那个其他网站可能会做另一个重定向http://subdomain.anothersite.com?q=foo,我无法控制或预测.如何确保我的重定向是正确的?

python google-app-engine redirect http

5
推荐指数
2
解决办法
5977
查看次数

Python——使用函数属性作为返回值

我有一个函数,它有几个可能的返回值。作为一个简单的例子,让我们假设它接受一个正整数并返回“小”、“中”或“大”:

def size(x):
    if x < 10:
        return SMALL
    if x < 20:
        return MEDIUM
    return LARGE
Run Code Online (Sandbox Code Playgroud)

我想知道编写和定义返回值的最佳方法。我想知道使用Python函数属性,如下:

def size(x):
    if x < 10:
        return size.small
    if x < 20:
        return size.medium
    return size.large

size.small = 1
size.medium = 2
size.large = 3
Run Code Online (Sandbox Code Playgroud)

然后我的调用代码看起来像:

if size(n) == size.small:
    ...
Run Code Online (Sandbox Code Playgroud)

这似乎是一个不错的内置“枚举”,可能比创建模块级枚举或将 3 个值定义为全局常量(如SIZE_SMALL, SIZE_MEDIUM等)更清晰/更简单。但我认为我以前从未见过这样的代码. 这是一个好方法还是有陷阱/缺点?

python enums

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