我目前在大多数编程项目中使用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#的全部范围吗?
我正在学习有关Heroku的app.json和app-setups功能.我app.json在我的repo的根目录中添加了一个并将其配置为设置附加组件,env vars等.
现在我试图找出那些从GitHub本地克隆我的repo并进行一些编辑,将其部署到Heroku以及app.json进行处理的人的步骤.
Heroku的帮助文章给出了一个例子,但我觉得我可能错过了一种更简单的方法,因为(1)它使用了cURL,我的许多用户可能没有安装,(2)它依赖于repo位于可公开访问的URL而不是在本地,和(3)它比典型的Heroku命令更冗长.
有更简单的方法吗?
我正在尝试决定是否学习ASP.NET MVC(或花时间学习另一项让我感兴趣的技术).我知道这是一个优雅的框架,但如果我投资这项技能,我会尝试评估我未来的工作机会.根据您的估计,在ASP.NET MVC开发人员的需求与其他顶级Web开发框架中的开发人员相比之前,需要多长时间?这是一年的事吗?2年?3+?在相关的说明中,您是否看到在可预见的未来使用ASP.NET MVC超越了经典的ASP.NET?Scott Guthrie说两者将并存,但我很好奇ASP.NET MVC预计会分享多少精神.
我知道这是一个推测性问题; 我只对你的主观预感感兴趣.
我做了很多涉及自动提交表单和/或从网站检索数据的项目.其中一些站点需要用户名/密码身份验证.(这些网站没有API,所以我依赖于屏幕抓取.)
我见过的大多数教程都将源代码中的用户名和密码存储为任何其他POST数据,例如:
string username = "someUserName";
string password = "somePassword";
// submit POST data...
Run Code Online (Sandbox Code Playgroud)
但我知道以纯文本存储密码通常是不受欢迎的.我应该使用另一种方法吗?
我的 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 文件)。下载的文件也不包含任何调试信息。
如何分析此文件下载的性能?
在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) 我刚刚完成了一个Django应用程序,我希望得到一些外部用户反馈.我想推出一个版本,然后分叉私有版本,以便我可以合并反馈并添加更多功能.我打算在这个过程中做很多小的迭代.我是网络开发的新手; 网站通常如何做到这一点?是否只是将我的Django项目文件夹复制到另一个目录,在那里启动服务器,并在原始目录中继续我的开发工作?或者我想要使用版本控制系统吗?我的直觉是它是后者,但如果是这样,它似乎是一个有很多用途的巨大话题(例如协作,这里不适用),我真的不知道从哪里开始.
根据我的经验,对向后/向前兼容性的承诺是软件工程行业的镀金笼.我特别注意到文档文件格式和编程语言/ API的情况.当他们现有的数据或代码中断时,客户和合作伙伴讨厌它; 但是,如果您永远不会破坏兼容性,那么从长远来看,您可能会严重限制您的创新能力.
除了逐渐弃用旧功能外,是否有解决此问题的方法?在Windows 7的XP Mode中,虚拟化似乎是一种令人兴奋的可能性.还有其他人吗?
此外,对于我们这些想要设计尽可能面向未来的新系统的人,我们可以从过去在行业中犯下的错误中吸取什么教训?
我正在编写客户端Python单元测试,以验证我的Google App Engine站点上的HTTP 302重定向是否指向正确的页面.到目前为止,我一直在打电话urllib2.urlopen(my_url).geturl().但是,我遇到了两个问题:
?k1=v1&k2=v2; 我怎么能看到这些?(我需要检查我是否正确地将访问者的原始URL查询字符串传递到重定向页面.)geturl()显示任何其他重定向后的最终URL.我只关心第一次重定向(来自我网站的重定向); 在此之后,我对任何事情都不了解.例如,假设我的网站是example.com.如果用户请求http://www.example.com/somepath/?q=foo,我可能想要将它们重定向到http://www.anothersite.com?q=foo.那个其他网站可能会做另一个重定向http://subdomain.anothersite.com?q=foo,我无法控制或预测.如何确保我的重定向是正确的?我有一个函数,它有几个可能的返回值。作为一个简单的例子,让我们假设它接受一个正整数并返回“小”、“中”或“大”:
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 ×5
django ×4
.net ×1
architecture ×1
asp.net ×1
asp.net-mvc ×1
assert ×1
c# ×1
enums ×1
heroku ×1
http ×1
ironpython ×1
legacy ×1
redirect ×1
security ×1