使用Python和文本文档数据库进行服务器端开发
我在工作用的机器上没有PHP服务器,也没有像Mysql这样的数据库。请问用Python代替PHP,用平面文件数据库代替Mysql可行吗?我对性能和扩展性不是太在意,毕竟我不是要做下一个Facebook。我只是想从服务器加载数据,然后在网页上显示出来,可能还要处理一些输入表单。还有,我的想法有什么大问题吗?或者有没有其他方法可以解决服务器上没有PHP和数据库的问题?
4 个回答
有很多方法可以运行Python应用程序,但你可能应该考虑使用WSGI标准的方式。很多框架都支持这个,比如Pyramid、Pylons、Django等等。如果你还没决定用哪个框架,那可以先想想你长期的需求,以及你已经掌握的知识。
关于数据库,有很多选择。虽然提到了SQLlite,但还有很多其他不需要服务器进程的数据库。如果你只需要存储少量数据,简单的文件就可以了。但如果数据量大或者需要更复杂的关系,建议使用SQLlite。
Python自带了一个叫做sqlite3
的模块,可以用来访问SQLite数据库。唯一的缺点是,在任何时候,只有一个线程可以对数据库进行写操作,也就是说,不能同时有多个线程写入数据。
如果你想学习用Python做网页开发,可以看看Flask这个框架。
有很多例子是用简单的文件来提供数据,而不是使用数据库。
你可以看看James Sharding的博客,里面讲了怎么用Flask-FlatPages
从文件中提供内容。
你也可以很容易地调整这个方法,直接提供纯文本(而不是把它解析成Markdown格式)。
最终的结果是一个轻量级、稳定的系统,避免了使用数据库的复杂性。
正如其他回答所提到的,使用SQLite也是一个很不错的选择。
在服务器上使用Python的事情比较复杂,因为Python和PHP是两种不同的东西,没法直接比较。你可以看看Python加上Django这个框架,然后再考虑你想做什么。具体可以参考这里:https://www.djangoproject.com
用Python写服务器端的脚本其实并不难,WSGI这个接口也很好用。不过,如果你想要和PHP一样的功能,通常需要用到好几层软件。
至于第二个问题——数据库,这个就简单多了。Python自带了SQLite3的接口,这样你就可以用一个只有一个数据库文件的数据库,听起来很像SQL的样子。SQLite使用得非常广泛,通常也很可靠。如果想了解更多关于sqlite3
模块的信息,可以查看这里:https://docs.python.org/2/library/sqlite3.html。