Python django开发网站发现的问题,pythondjango,最近在学习用django


最近在学习用django开发一个简单的网站,但是发现除了django、python还得需要不少网站开发的经验,比如说session,cookie的知识,以及一些数据库方面的应用知识。现在是遇到这类问题都是去问Google,这样的问题就是:

解决特定问题花费太长时间;找到的说不定是已经被抛弃的解决方法;学习的不够系统,东一块西一块,很是凌乱;可能会忽略掉某些重要的东西。

那么有没有这样一本书,基本涵盖了以下内容:

网站的登录功能怎么实现:密码的存储机制、重置密码时链接的生成算法,第三方认证的原理等等。介绍设计网站数据库时应该注意哪些问题。比如说有一个编辑框,可以让用户输入2MB以下的文字,同时还允许插入图片,链接等,那么这个编辑框获取到的内容该如何在数据库存储。其他我暂时没遇到的网站开发中的问题。

或者是有没有一些好的讨论组、社区可以加入,或者一些小型的开源项目可以拿来参考。总之呢,我现在需要一个方向,希望有经验的前辈可以指一下路!

1.网站的登录功能怎么实现:密码的存储机制、重置密码时链接的生成算法,第三方认证的原理等等。
django的密码储存是 Hash+salt 并迭代 第三方认证是用oauth2

django-admin里面有写了哦 循环1000次加密算法
google关键词 hash salt,oauth2

2.介绍设计网站数据库时应该注意哪些问题。比如说有一个编辑框,可以让用户输入2MB以下的文字,同时还允许插入图片,链接等,那么这个编辑框获取到的内容该如何在数据库存储。

输入文字大小限制,额 要我做 我就先前段限制一下,后台判定下 字符串长度,数据库里面用TextField保存图片的话分开处理,后台把图片存到media里面,数据库里存media地址。ps。我都是存html代码到数据库,省事情

3.其他我暂时没遇到的网站开发中的问题。
这个说3天3夜都说不完,我就说一点 ide强力推荐pycharm 谁用谁知道


你没有明白django的设计理念,自带用户登录系统已经超级棒,你只需要看django 官方文档 学会正常使用就好,入门不需要掌握很多细节,凭空增加难度
你需要的功能都有相应的django app

第三方登录 OAUTH:https://github.com/yueyoum/social-oauth
编辑器:
https://github.com/aljosa/django-tinymce

入门跟着the django book 然后自己做个blog入门
国内django社区都不太活跃
django-china官方群可以加加 不会的可以在群里问
segmentfault 首次回答问题 求赞=。= 逃

Django 官方文档:https://docs.djangoproject.com/en/1.7/

很完整,很详细还有例子。在SO上面关于Django的提问很多都会给出官方文档的链接。弱弱的说,我也没看完官方文档,遇到问题把范围内的都看一遍差不多了。最近在看一本Djangp best practices,对于我这种之前没有任何开发基础的来说帮助很大。

希望可以帮到你。

django book,入门
django doc查找细节api
手边弄一本python的工具书,边写边总结

题主你说的这些问题,其实包含了很多方面的知识。比如sessiion、cookie这些,就需要了解HTTP协议的基本知识。HTTP协议的参考书籍,入门可以看看《图解HTTP》,想深入了解,可以阅读《HTTP权威指南》。至于其他的实践方面的问题。你需要的,是一个系统的案例。如果有耐心的话,建议直接看看Django的django.contrib.auth源代码,可以解答你对于用户注册相关流程的一些疑问。也可以参考一些用Django搭建的大型项目,比如Django CMS的源码。这种大型工程,可以解答你上面所有的问题。这些都是开源软件,随时可以查看的。如果题主真的喜欢Web开发,那么阅读源代码是必须要做的。而且Python工程的源码,在众多编程语言中,算是比较容易读的了,希望题主能够养成这个习惯。

1、解决特定问题花费太长时间---学习技术总有一个瓶颈期和暴涨器,如果想快速过瓶颈期,就要从基础理论实现的角度融汇贯通各种技术形式
2、找到的说不定是已经被抛弃的解决方法;---这个需要对业界的最新技术前沿保持持续专注。---天下代码一大抄,复用从某种角度还是"抄"。
3、学习的不够系统,东一块西一块,很是凌乱;---同第一个问题的最后一句话
4、可能会忽略掉某些重要的东西。---大成若缺,求完美是不可能的,老外招技术,喜欢招从小就搞那东西的人。
那么有没有这样一本书,基本涵盖了以下内容:

1、网站的登录功能怎么实现:密码的存储机制、重置密码时链接的生成算法,第三方认证的原理等等。
2、介绍设计网站数据库时应该注意哪些问题。比如说有一个编辑框,可以让用户输入2MB以下的文字,同时还允许插入图片,链接等,那么这个编辑框获取到的内容该如何在数据库存储。
3、其他我暂时没遇到的网站开发中的问题。
---上面这三个问题,基本都不是个事。

或者是有没有一些好的讨论组、社区可以加入,或者一些小型的开源项目可以拿来参考。总之呢,我现在需要一个方向,希望有经验的前辈可以指一下路!---做码农就是场脑力持久战。

django的contrib多研究研究 好东东尽在其中

你问的这些基本没有最佳实践

密码储存一般 Hash+salt,这篇文章不错 http://blog.jobbole.com/61872/
密码重置链接的做法很多,uuid4 是一个比较好的选择。
编辑的格式就更多了,segmentfault 用的是 markdown,但是中国的非技术社区更常见使用论坛的那种格式。

如果lz不介意玩一下Ruby on Rails的话,可以考虑阅读 http://railstutorial-china.org/rails4/

django 不了解,你可以看一下 https://github.com/pythoncn/june 这个项目,它目前的版本是用 flask 写的,先前应该也用 tornado 写过一个版本。

你所碰到的问题,是你以后一定会碰到的。如果需要 Google,那你就去 Google,把 Google 到的答案试一遍,不行再来过。

常做笔记。

经历过这个阶段(需要哪些,有哪些坑,哪些可以提升等等),你用任何一门语言、框架开发一个 web 项目,都不在话下了,只需要花一点时间了解一下那门语言的语法、框架的文档等等。

我的建议是找一个比较简单,功能没那么 强大 的框架开始,比如 tornado 啊 flask 啊 web.py 啊之类的。这个过程中,你可能会遇到更多问题(那些强大框架已经处理但简单框架没有处理的),但挺过去就好了!

加油!


更新 2015-01-19

更新一下,不建议使用 flask 啦……这货依赖它家自己写的另一个 HTTP 服务框架,个人觉得学习成本较高,绕来绕去,不利于学习。如果它整合在一起还是很不错的。

还是推荐 tornado 吧。

编橙之家文章,

评论关闭