如何从PHP转换到Python Django?
这是我的背景:
我对PHP和MySql有一定的经验。对面向对象编程(OOP)是初学者水平。
我为什么想学习Python Django? 经过在StackOverflow上多次搜索和阅读一些回答后,我觉得Python是一种很棒、结构清晰的语言。而且使用Django这个框架,写出来的代码比用PHP要简洁很多。
问题
我能在Django中做和在PHP中一样的事情吗?
Django在网页开发中是否像PHP一样受欢迎?我知道Python是一种很好的通用语言,但我主要关注网页开发,想知道Django在网页开发中的地位如何。
在PHP中,PHP和MySql的关系非常紧密,那么Django和MySql之间的关系如何呢?
在PHP中,你可以很方便地在一个脚本中切换HTML、CSS和PHP。Python是否也能提供这种在不同语言之间的便利?或者我该如何将HTML、CSS和JavaScript与Python结合使用呢?
4 个回答
在PHP中,你可以很方便地在一个脚本里切换使用HTML、CSS和PHP。这种方便的特性,Python也有吗?或者我该如何在Python中结合使用HTML、CSS和JavaScript呢?
这就是为什么PHP这么容易上手的原因之一。但这也是为什么很多(如果不是大多数的话)PHP项目会变得一团糟的原因。这就导致了所谓的“意大利面条代码”现象。
Django则强调将页面设计、视图逻辑和URL路由完全分开(其实大多数现代的MVC或MTV框架都是这样)。所以模板放在一个地方,数据结构定义在另一个地方,而定义它们如何互动的逻辑又在另一个地方。虽然这需要一点时间去适应,但好处是非常大的。
对于从PHP转过来的人来说,另一个需要适应的地方是文件和文件夹的名称不再直接影响URL。例如,在PHP中,你可能会有foldername/filename.php,这样的URL就是http://example.com/foldername/filename.php。但在Django中并不是这样。相反,你需要在一个文件(urls.py)中定义URL结构。在这个“地图”中,你定义了当匹配的URL被拦截时,哪个逻辑部分(“视图代码”)会被调用。一切都是抽象化的。这样一来,网站的布局和逻辑就变得更加清晰和合理。
我可以在Django中做和在PHP中一样的事情吗?
当然可以。
Django在网页开发中像PHP那样受欢迎吗?
只有时间能证明这一点。
在PHP中,PHP和Mysql的关系非常紧密,那么Django和Mysql之间的关系怎么样呢?
Django支持多种关系型数据库管理系统(RDBMS)。Mysql很受欢迎,SQLite和Postgres也一样。
在PHP中,你可以很容易地在一个脚本中切换HTML、CSS和PHP。
这在Django中并不适用。
那我该如何将HTML、CSS和JavaScript与Python结合起来呢?
其实你可以去做一下Django的教程。你会看到展示部分(通过模板生成的HTML)和处理部分(通过Python的视图函数)是如何结合在一起的。这和PHP不太一样。