我想为每个模型使用唯一的哈希而不是ID.
我实现了以下功能,可以轻松地全面使用它.
import random,hashlib
from base64 import urlsafe_b64encode
def set_unique_random_value(model_object,field_name='hash_uuid',length=5,use_sha=True,urlencode=False):
while 1:
uuid_number = str(random.random())[2:]
uuid = hashlib.sha256(uuid_number).hexdigest() if use_sha else uuid_number
uuid = uuid[:length]
if urlencode:
uuid = urlsafe_b64encode(uuid)[:-1]
hash_id_dict = {field_name:uuid}
try:
model_object.__class__.objects.get(**hash_id_dict)
except model_object.__class__.DoesNotExist:
setattr(model_object,field_name,uuid)
return
Run Code Online (Sandbox Code Playgroud)
我正在寻求反馈,我怎么能这样做?我怎样才能改进它?有什么好坏和丑陋的?
我当时认为django admin是一个实用程序,可以提供站点的可信管理员,完全访问站点的数据模型.
但是,在详细介绍了django admin之后,我了解到它是一组非常强大的视图和模板,可用于创建整个应用程序.
您是否经常使用管理员创建整个应用程序?使用视图本身比自定义管理员更容易吗?
如何使用admin构建原型.我们甚至需要构建原型吗?管理员自定义无法在实际应用程序中重复使用.
如果我想在实际应用程序中使用部分管理代码(使用不同的模板),是否有某种脚手架选项可用?
Markdown语法通常可以方便地编写博客和评论;
但有时候当你想写一个简单的html时它会干扰内容
是否有标记/语法要求markdown忽略该部分,如prehtml标记?
如果预先工作,如果降价部分需要包含html标签怎么办?
什么是python urllib等效的
curl -u username:password status="abcd" http://example.com/update.json
Run Code Online (Sandbox Code Playgroud)
我这样做了:
handle = urllib2.Request(url)
authheader = "Basic %s" % base64.encodestring('%s:%s' % (username, password))
handle.add_header("Authorization", authheader)
Run Code Online (Sandbox Code Playgroud)
有更好/更简单的方法吗?
商人通常希望开发Web应用程序.他们通过名称了解.net或J2EE,而不了解其中任何一个.
Altho'Rails和Django提供更好更快的开发堆栈,说服商人使用这些平台是一项重大任务.
任务开始于介绍Django(或Rails),引用一些博客/研究.然后为特定项目使用框架提供案例.
很多任务都是重复的.您使用什么来源/博客/白皮书和其他材料来制作django(或Rails)的案例
难道你不认为应该有一个共同的小册子,很多开发机构可以用来制造同样的案例,一次又一次.现在有没有这样的?
关于Django vs Rails似乎有足够的讨论.虽然需要(Django和Rails)vs(.net和J2EE),但至少在做商业案例的时候.两者都代表了动态语言中更快速实用的Web开发.
到目前为止,处理python包安装的最简单方法是从源代码控制系统中检查源代码,然后在python dist-packages文件夹中添加一个符号链接.
显然,由于源代码控制提供了降级的完全控制,升级到任何分支,标签,它运行良好.
有没有办法使用其中一个Package安装程序(easy_install或pip或其他),可以实现相同的功能.
easy_install获取tar.gz并使用安装在python2.6的dist-packages文件夹中的setup.py install进行安装.有没有办法配置它,或者pip来使用源版本控制系统(SVN/GIT/Hg/Bzr).
我几乎没有注意到在for循环中使用else的python程序.
我最近使用它在退出时根据循环变量条件执行操作; 因为它在范围内.
在for循环中使用else的pythonic方法是什么?有没有值得注意的用例?
而且,是的.我不喜欢使用break语句.我宁愿将循环条件设置为复杂的.如果我不喜欢使用break语句,我能从中获得任何好处吗?
值得注意的是,自语言开始以来,for循环有一个else,这是第一个版本.
我有一个提交,我已经存储在一个分支中,因为这应该只发送到一个特定的框.
我已将它合并到分支主服务器,但不是我在本地使用的分支dev.
现在,我错误地将master合并到dev,并将此提交引入了dev.
我知道可以git revert sha,to branch dev; 但是因为这将引入一个撤消提交的提交(我猜,我还没有完全尝试过这个),当我合并master时,这个提交也会撤消吗?
如果是这样,我如何仅从分支dev撤消此提交.
哦, - git reset HEAD^1hard不是一个选项,因为在不需要的提交之后,master上还有其他提交.
如果再次重置并且apply是唯一的选项,那么除了不需要的提交之外,我如何仅从master合并那些额外的提交.
更新:
这是提交树.看起来很复杂 我已经指出了我在开发中不需要的提交.(我也删除了任何个人身份信息,感谢理解.截图gitk比ascii艺术要简单得多.)

提前致谢!
我正在撰写观点,不太热衷于立即编写模板.
但我需要通过提交帖子请求来测试我的程序.
我如何在django视图中模拟HTTP Post
我知道python的urllib2和httplib模块允许很多选项,但我正在寻找优雅地集成到django视图中的东西.
你会创建一个执行post的方法,你会在哪里调用它?
更新:一些答案通过向我的应用程序发送POST来处理测试.如果我想POST到外部服务并处理POST响应,该怎么办?如何在不编写模板的情况下完成.
我正在阅读git-svn的CAVEATS.通过这个SO问题.
我的理解是:
如果您在git repo上镜像svn trunk,branches等,请不要在这些分支上本地合并或重新绑定任何内容.具体master指向了trunk.
我的观点是,这会使git-svn残缺.git有什么意义,如果我不能从master分支然后将更改后的分支合并回主服务器?也许我在警告中遗漏了一些警告,说可以合并某些具有相同父级而没有任何rebase的分支.
任何人都可以向我指出需要避免什么以及允许什么.我想要本地分支,如果需要,那些需要被镜像和合并,最重要的是git应该进行合并而不是svn.
如果我使用git branches来镜像svn分支而且我不能合并git分支,那么git-svn究竟是什么意思呢?
python ×5
django ×4
git ×2
svn ×2
coding-style ×1
commit ×1
curl ×1
django-admin ×1
easy-install ×1
for-loop ×1
git-svn ×1
hash ×1
html ×1
http ×1
http-headers ×1
markdown ×1
pip ×1
plugins ×1
random ×1
revert ×1
ruby ×1
unit-testing ×1