python在不用框架的情况下如何写网站后台
回复内容:
python标准库中的basehttpserver适合你,阅读下源码你就知道了
Django的翻译文档有这么一段话:
如果你曾编写过网络应用程序。 那么你很有可能熟悉之前我们的 CGI 例子。
从头开始编写网络应用程序。
从头编写另一个网络应用程序。
从第一步中总结(找出其中通用的代码),并运用在第二步中。
重构代码使得能在第 2 个程序中使用第 1 个程序中的通用代码。
重复 2-4 步骤若干次。
意识到你发明了一个框架。
这正是为什么 Django 建立的原因!
你不用框架最后还不是得实现框架,是吧。何必重复造轮子,当然如果是将马车升级为汽车,那就不是造轮子了。
可以去看看廖雪峰的教程,他就是自己实现的框架,还有例程很详细
推荐 Python教程 - 廖雪峰的官方网站
别说你不用框架的情况下读了这个能写,连还不懂 Python 读完都能写。
看看这个A Do-It-Yourself Framework
可以尝试使用 WSGI,类似 Java 的 servlet ,只是定义了一套框架与服务器交互的接口规范,参考 PEP 333 -- Python Web Server Gateway Interface v1.0
写出来最简单的应用是这样的:
<code class="language-python"><span class="k">def</span> <span class="nf">simple_app</span><span class="p">(</span><span class="n">environ</span><span class="p">,</span> <span class="n">start_response</span><span class="p">):</span>
<span class="n">status</span> <span class="o">=</span> <span class="s">'200 OK'</span>
<span class="n">response_headers</span> <span class="o">=</span> <span class="p">[(</span><span class="s">'Content-type'</span><span class="p">,</span> <span class="s">'text/plain'</span><span class="p">)]</span>
<span class="n">start_response</span><span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="n">response_headers</span><span class="p">)</span>
<span class="k">return</span> <span class="p">[</span><span class="s">'Hello world!</span><span class="se">\n</span><span class="s">'</span><span class="p">]</span>
</code>
ログイン後にコピー
Python自带CGI库,就叫cgi
写法类似几十年前的perl写网站。你需要自己处理session、cookie,以及URL routing。
性能也是不行的:每个http请求对应一次python脚本执行。
学习一下可以,不要自虐了。PHP可以这么干是因为PHP本身除了语言之外还有一个随语言自带的web framework(见过哪个语言有session_start类似的函数?)
flask、bottle、tornado这种微框架也不行么?
那werkzeug呢?
比如uwsgi+werkzeug+自己实现wsgi application
flask不就是包装werkzeug的wsgi application么
再加个按需指定的数据库模块、session模块什么的
werkzeug也嫌大的话,那需要实现的东西就有点多了吧,http解析、url解析、url route等等,那就有点划不来了吧
CGI?
实现wsgi即可,但。。。你真的不需要框架吗
怎么可能不用框架,早晚你都会自己写出一个框架