我正在开发一款需要网络前端的应用。我所关心的只是iOS,Android应用程序的HTTP接口。后端将使用MongoDB。
我需要使用Python框架吗?我看到Django想为我生成数据库接口。从粗略阅读Django教程不清楚为什么我必须使用所有那些“应用程序”,如admin,auth等。我没有看到在Django中禁用数据库接口的方法。
当我之前编写php代码时,我需要的只是php apache模块,我可以访问php代码中的HTTP头,我自己处理了所有内容。我可以不用python做那样的事情吗?为什么人们使用框架?
答案 0 :(得分:6)
您可以尝试使用Flask这个轻量级的Web框架,它可以帮助您创建简单的前端。可以在框架网站上找到简单视图的示例:
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
do_the_login()
else:
show_the_login_form()
使用Flask,默认情况下没有不需要Django(admin,auth ...)的模块,因此您可以专注于数据库管理。
<小时/> 如果你想要一个尊重你的问题的答案,是的,你可以在没有框架的情况下用Python创建一个网站。 WSGI可能对此有所帮助,但会更加困难。
答案 1 :(得分:3)
修改强>
关于Using Django for (mostly) static sites
的好文章<强> ORIGINAL:强>
你在提问时提到了Django,所以我会按照这条兴趣来关注。并不是说没有其他框架可以肯定做得很好,但正如已经评论过的那样,如果没有关于你的特定用例的更多细节,那么很难建设性的。
没有任何框架,意味着直接使用WSGI。这意味着手动指定HTTP标头,以及所有爵士......毕竟我会看一下框架。 http://wsgi.readthedocs.org/en/latest/frameworks.html
Django绝不依赖于数据库。当然,它有很多内置的好东西,可以很容易地使用数据库,但肯定没有必要。
只需从INSTALLED_APPS
删除所有应用,然后从urls.py中删除url(r'^admin/'...
。就是这样,现在你可以创建你的视图和(optionaly)模板,不受数据库的影响:)
注意:并非所有应用都需要数据库,例如。 django.contrib.staticfiles。
一个简单的视图(取自The Docs):
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
urls.py中的这一行会将URL链接到它:
url(r'^$', 'testapp.views.current_datetime'), # on domain root
or
url(r'^da-time/?$', 'testapp.views.current_datetime'), # on domain.com/da-time/
您可以使用python manage.py runserver
运行测试服务器。
是的,你没有使用ORM,恕我直言是Django最好的部分,但我仍然认为这可能是值得的,特别是如果你熟悉它,或者计划成为。而且,你也不是在写response_headers = [('Content-type', 'text/plain')]
,这可能是一件好事。当然,虽然手动指定标题,重定向等只是一行或两行代码。