我使用过XAMPP、WAMPP、MAMPP等,现在开始关注Django。
我们做的大部分工作都是面向内容管理系统的;尽管我们被告知不要使用第三方内容管理系统(主要是因为用户发现它们很难使用,以及其他问题),但我发现我可以使用Cake、CodeIgniter或其他PHP框架编写一个非常简单的内容管理系统。
然而,仅仅为了启动和运行某些东西,我就需要进行大量的编码,这让我越来越沮丧,而且有人告诉我,Django是一个很好的Python框架。它似乎也从reddit那里获得了很多关注。
我对从XAMPP迁移到Django有一些担忧和疑问。
1)安全性
任何web应用程序都应该进行防御性编码。在过去的几年里,我们已经看到了防御XSS、SQL注入、跨站点伪造、会话固定、会话劫持、cookie劫持的趋势;人们需要的安全性可能是压倒性的。
Django做了什么事情来防止/限制XSS、SQL注入、Javascript注入和santizing输入;通常与保护PHP web应用程序联系在一起?这是我需要担心的事情,还是Django开箱即用来做所有这些事情。
2) /www/ public文件夹中有什么?
我在一份手册中读到,不要将manage.py或其他.py内容放在主webroot中,这意味着我将所有内容都放在webroot之外;那么在里面放了什么?
我是否要将/template/目录放在webroot中?服务器如何知道要运行什么?
3)我还可以在Django项目上使用.htaccess吗?我对Apache很熟悉,经常用它来做路由,或者拦截坏的机器人,但是使用.htaccess仍然可以吗?
4) Cronjob
cronjobs是否仍然适用于Python/Django项目?
5)运行第三方perl/其他脚本
在PHP中,您可以使用其他库,例如curl库、ffmpeg、ImageMagik以及许多其他库;我还可以在Python/Django中使用这些库吗?
6)管理屏幕
Django为您提供了一个开箱即用的管理屏幕;这是仅用于开发目的,还是可以将其上线?我关心的是管理屏幕的任何安全性。
7)集成讨论、Facebook、Twitter、OpenID、验证码等。
PHP中有一些库可以帮助集成DisQuss、Facebook、Twitter;但是与这些和其他第三方应用程序集成相对容易吗?
8)电子商务,SSL
有很多使用Django的电子商务网站吗?我见过很多CMS/博客类型的软件,但并不是很多电子商务网站。我的意思是,购物卡,Protx/Paypal或Worldpay集成。
这是另一回事;有Protx、Paypal、Worldpay等PHP的沙箱--但是Django有沙箱吗?
9)值得吗?
从XAMPP背景转到Django值得吗?它真的会让事情变得更快吗,或者这只是营销炒作?
谢谢。
发布于 2010-01-31 03:41:27
发布于 2010-01-31 03:24:36
SQL注入: SQL使用,它负责注入保护,您很少编写自己的SQL语言。如果是这样的话,只需对如何向原始查询传递参数和防止SQL注入进行follow the instructions即可。
django book about security上有一个完整的章节可以回答你的所有问题。
关于/www/:中的内容是否有任何不是代码的内容?问题是不要把python代码放在那里。
On .htaccess: Django是的,它应该仍然可以工作(对于任何非资源,正如丹尼尔指出的那样)。
cronjobs上的:什么意思?
库上的Python : Django您将在中使用的语言-具有丰富的库,这些库可能提供您所习惯的相同功能。这是一个关键点:您需要学好Python才能从Django中获得最大的好处。
管理界面上的:从你的问题来看,这实际上可能是对你最有帮助的事情。它们是可定制的(在一定的限制范围内),它们确实为工作人员(不是为公共用户设计的,而是为工作人员用户准备的)为您的数据库模型提供了CRUD的基础知识。这是节省时间的方法。您可能需要为高级功能编写自己的模板,但对于大多数针对员工的简单CRUD (这通常是CMS的要点),它非常有用且易于设置。
集成时的:对一组提供额外功能的应用程序进行 Pinax检查。有一个丰富多样的集成解决方案的世界。在这里找到关于django + facebook和其他网站的问题并不少见。
电子商务上的: Check Satchmo out.
XAMPP是否值得:现在,我没有使用的经验。我知道我更喜欢Python而不是Perl和PHP (就这一点而言,还有Java )。我知道作为一个框架,Django使用起来更简单,部署起来也比我以前用过的任何东西都要快。
我的建议由来已久:去构建一个简单的项目,然后自己做决定。你是唯一能够决定Django是不是适合你的框架。
关于SO的一个老问题讨论了Django的一些限制。My answer to that可能对您也有帮助。
发布于 2010-01-31 04:57:18
我最近开始使用Django开发任何新项目,都有PHP背景。以下是我对你的问题的看法。
1)安全性
默认情况下,发送到模板的字符串是转义的,它负责大部分操作。由于您使用的是ORM,SQL注入应该不是问题,除非您出于某种原因构建原始查询。
2) /www/ public文件夹中有什么?
Django不像典型的PHP设置那样使用URL的文件层次结构。服务器知道从指向模板文件夹的urls.py和settings.py指针运行什么。
3)我还可以在Django项目上使用.htaccess吗?我对Apache很熟悉,经常用它来做路由,或者拦截坏的机器人,但是使用.htaccess仍然可以吗?
如上所述,它同样适用于静态内容。据我所知,对于动态页面,您可能希望为要阻止的客户端实现某种其他形式的身份验证或重定向。
4) Cronjob
您没有理由不能使用cron,因为您仍然拥有一个普通的Linux系统。
5)运行第三方perl/其他脚本
当然,您需要使用这些库的Python版本。例如FFMpeg PythonMagick
我用内置的urllib和urrlib2库替换了我对Curl的大部分需求,但如果您需要的话,也可以使用PyCurl。
6)管理屏幕
Admin屏幕旨在供您自己的管理员使用,即站点员工。这样做可能是可能的,但它不应该是你构建面向公众的项目的脚手架。
7)集成讨论、Facebook、Twitter、OpenID、验证码等。
有很多人在使用Python和Django,我在寻找库时没有遇到任何问题。在我的经验中,对某些东西的支持比PHP少一点,但通常有更高的质量。
8)电子商务,SSL
我还没有尝试过支付集成,所以我不能说。不确定其他网站,但是Paypal Sandbox是由Paypal运行的,不是吗?我不认为它与你在服务器上使用的东西有关,所以你可以像平常一样访问它。
9)值得吗?从XAMPP背景转到Django值得吗?它真的会让事情变得更快吗,或者这只是营销炒作?
我转到Django是因为Python确实比PHP更吸引人。它会让事情变得更快吗?我不确定Django vs.the PHP框架在这方面的优势是什么。没有什么灵丹妙药。
你必须记住,你不仅仅是在学习一种新的框架,也是一种新的语言。如果您以前从未使用过Python,那么将会有一点学习曲线。但是我发现Python和Django都相当容易学习。这门语言的简洁设计非常棒,Django的设计也非常好。我确实觉得它提高了我的工作效率。正如我一直在学习的那样,我已经找到了关于我在Django中需要做的几乎所有事情的代码片段或文章,所以适应起来非常简单。
https://stackoverflow.com/questions/2168624
复制相似问题