谁能简单说一下python unittest框架几个框架的特点吧

nodejs 和 Python 你会选择哪一个 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
nodejs 和 Python 你会选择哪一个
· 77 天前 · 2342 次点击
本人在校生,在校一直学习 java,算起来有尽一年的时间了,框架也都学完了,准备大二开始就做项目,当然这个帖子是为我下半年问的,就业之前想简单学习下第二种 web 后端编程语言,后端语言我看了下也有很多种,因为不是当做主语言使用,所以就考虑了一下,nodejs 和 python 的发展潜力很大,那么?大佬们怎么看?
47 回复 &| &直到
19:54:35 +08:00
& &77 天前 via iPhone
都学也没啥问题,大二离毕业还早着呢。
& &77 天前
不是 spring 大法好么;
推荐 node,可以前端后端一起搞了,语法层面差异不大
& &77 天前 via iPhone
都学! 两者有很大的不同 不用担心学重复了
& &77 天前
node 潜力更大
& &77 天前
我选 python 吧,毕竟抛开后端,python 还有很多用处,或者说其实我更想推荐 go...
& &77 天前 via iPhone
python 因为后面还可以再搞搞 tensorflow 什么的
& &77 天前 via Android
职业前端 ,也在这俩之间徘徊所以下班后都在学,你离毕业时间还长,一起学轻轻松松没问题。
& &77 天前 via Android
我马上就要毕业了
大三就去实习了
不过目前在自考升本
@ 唉 真的
这一年我眼睛 5.1 变成近视
变成了近视
身体也不好了
感觉 java 真是无边的海洋
天花板太高了
我想只能时间熬了
@ 如果时间足够的话
我会这么做的
@
node 属于前段吗?我看很多前端工作者都在学?
@ google 的语言对吧?我想要一门自己简单就可以高速开发的
java 实在是太累了
@ python 除了做后端?还应用在那些方面呢?
& &77 天前
我选 python
& &77 天前 via iPhone
@ python 会上很多 ML DL 的包
& &77 天前
这个看你的发展方向,展现向 node,服务向 python
& &77 天前
& &77 天前
其实最省心的是 Ruby on Rails
& &77 天前 via Android
两个又不冲突
& &77 天前 via Android
python 各种包很多,写起来也快,是一把顺手的生活工具。学了 node.js 也不耽误了解了解 python,绝对对得起花的时间
& &77 天前
& &77 天前
人生苦短,python 吧
& &77 天前
人生苦短我选 python+go
& &77 天前
+1 人生苦短我选 python+go
& &77 天前
感觉回复都不注意审题,楼主才大二,才大二啊!!!这属于没有方向的瞎学和瞎建议!!!
数据库设计、软件工程、计算机原理学了嘛??都不提算法和英语了。
再说,不说兴趣爱好和未来发展方向就想学?就学时髦的玩意?
& &77 天前
你做后端学这两个玩意,这是走上了邪路啊。
C 和 Go 吧。C 要认真学,Go 等 C 和操作系统学好了之后再学,不然容易走上邪路,我见过好多人连并行并发都搞不清楚就跑出来说 Go 多么多么牛逼一统天下的,无力吐槽。
& &77 天前
Java 框架也都学完了…框架都学完了…学完了…
& &77 天前 via iPhone
web nodejs,ml python
& &77 天前
@ 看到这个,我也不知道要说什么了
& &77 天前
& &77 天前 via iPhone
& &77 天前 via Android
@ 此话怎讲?
@ 好的好的
@ 两种语言吗?
@ 你好,wwb 开发方向我是很感兴趣的,您说的这几个课程,我都在同时在看的,算法和英语也是,不好意思,没有说明白。
@ 我比较喜欢 web 程序开发,就像我现在对 javaweb 很感兴趣,go 适合 web 开发吗?
@ 不好意思,只是把五个框架过了一遍,只是学完,我没有说掌握,今年会一直做实战的,多谢关心。
@ 不好意思
@ 会的,我感觉 java 需要时间的沉淀,也不知道对不服
@ 个人喜欢 web 开发呢?那改如何抉择呢?
& &77 天前
脑子没毛病的肯定选:Python
& &77 天前
如果你打算坚持做后台,就选 python ;如果你还不知道自己的未来,可以都学;如果精力有限,又想尝试动态语言,建议 NODE,因为比 Python 更多可能。
我两个都会,但是 Python 忘得差不多了,本职工作前端...
& &77 天前
python 值得学习。
nodejs 如果你不搞前端,纯粹写 nodejs,感觉不太好
& &77 天前
nodejs,怎么说呢,如果需要异步的时候,你会发现 nodejs 的异步很爽,然而,后台大部分业务是不需要异步的,然后就会发现 nodejs 的异步很坑爹,为了填这个坑要踩很多坑
& &77 天前
@ node 咯~
& &77 天前 via Android
@ …
@ 好的 谢谢
& &77 天前
选 golang 啊
& &77 天前
鼓励学 java + go.
& &77 天前
node , go , py 都适合做 Web 开发,选一个自己喜欢的语言就好了
& &77 天前
如果涉及 Linux 的,建议 Python ~可以很方便管理系统
& &77 天前 via Android
反码、补码都搞明白了吗?
& &77 天前 via Android
能说一下吗?
@ 不好意思 不明白
@ 好的 这也是我发这个主题的目的
@ 为什么呢?我先去了解一下
& &77 天前 via iPhone
& &77 天前 via Android
我建议都学吧,反正你还早
& &77 天前 via Android
我一直在学 java
& &76 天前
你问的是 web,那么语言本来就不多.首先, java 作为当前最流行的语言之一,应用广泛,性能优秀,基础设施完备,鼓励优先学习,只要学会它,其他语言不学都可以!Go lang 在并发场景下,非常优秀,可以作为研究用,我看好它,所以推荐你学习.Node.js 有自身优势(具体百度,如果你想要靠近前端,这个必须学,优先级在 java 之前;如果是后端,那么首推 java),但是也有劣势,那就是现在变化太快,东西太多,同时稳定方案少,可以作为 java 之外的备选方案.Python 在 web 上并没有 java node.js 强势,需要靠后,它也非常有特点,用来作为脚本语言,研究算法啊,安全啊,很好.
& &76 天前
接上条....个人觉得 c 语言你必须会.那么接下来谈谈 java . java 在 web 场景下,大数据,高并发,消息通信,检索,手机端等等大多数都有 多套 优秀的 开源 方案,同时性能优秀,(团队)开发效率不差,我觉得你大学摸完这门语言相关的 web 块,成就就很高了.后端的东西很多并不在语言本身,而在数据结构,算法等这些通用东西.至于其他强类型语言,如 c++, go lang,只要你想学,回过头去看,你会发现不难,更加不用说 node.js,python 等弱类型语言!如果你想学着玩玩,推荐 go lang node.js , 它们相对于 Python 更加有优势.
& &76 天前 via Android
@ 首先非常感谢你能回复的这么详细,非常感谢,其实我作为一个初学者来说,这些我对于您讲的这些都是迷茫的,关于 c 语言的问题我想我暂时应该是不会去学习的,时间非常有限,属于就业驱动。再者您提到的数据结构,算法等内功我深知它们的重要性,只不过基础很是薄弱,算法几乎一无所知,我在 javaweb 上的使用上自己摸索了很长一段时间,才勉强吧 javaweb 方面的知识看完(仅仅看完),我一直在利用空闲时间学习数据结构和算法。再者由于我对这个行业的就业方向不清楚所以目前仅仅对 web 程序开发感兴趣。由于是就业驱动,目前感觉 java 天花板有点高,所以打算明年上半年抽空学习第二语言增加竞争力。目前对于第二语言的要求不高,能够快速开发 web 应用。以弥补 java 多人协作,开发慢的短板。您认为是 go 能达到这个要求吗?目前我心里感觉是 python,毕竟 python 可以应用于爬虫,当工作稳定后我去探索 go 或者 c
你认为这样合适吗?
& &76 天前
我觉得你有自己的想法是一件非常好的事情,但我依旧推荐你一定要学习 C 而且是首先学 C.为什么?因为 c 性能好,面向函数,贴近底层,易学,同时在 c 的基础上,学习 java ,c++等语言时更顺.Java 是个人开发慢,但多人协作时,速度快,同时可维护性好,这不是它的劣势!爬虫这种,初步非常非常简单,对入门者来讲,用 python,java,node 等差别都不大,还不如做商城项目来的好.如果你面向就业,就更加不推荐你学 python 了, Node.js 更加好.你可以关注一下多少公司用 python 的(直接招聘市场上看就好了),同时多少用 java, Node.js 的.而且你才大二,时间有限?????就业竞争力这种东西,并不是说你多会几门语言就能突显的.切记来的广,还不如来的深.多去检索一下 web 的技术栈,web 技术专家,高级 web 人才招聘要求,你就清楚了.
& &76 天前 via Android
@ 是的,您说的非常正确,我一直在按照关注招聘网站上的公司需求来更新我的知识,同时我也会尽快将 c 的学习提上日程,当然也会重新考虑 nodejs,我会努力提升 java 的深度,当然 java 也会是我的主修语言,另外非常感谢您的耐心回复能给予我莫大的帮助。
& · & 565 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 58ms · UTC 19:36 · PVG 03:36 · LAX 11:36 · JFK 14:36? Do have faith in what you're doing.帐号:密码:下次自动登录{url:/nForum/slist.json?uid=guest&root=list-section}{url:/nForum/nlist.json?uid=guest&root=list-section}
贴数:5&分页:阿土伯 - 是非成败转头空发信人: aturbo (阿土伯 - 再见理想), 信区: Python
标&&题: 谁能简单说一下python几个框架的特点吧
发信站: 水木社区 (Thu Dec&&8 11:24:18 2011), 转信 && 我就知道django
中量级、优美,但是后期可能不灵活
不喜欢的auth,耦合太紧
听说它的orm也要逊色于SQLAlchemy,同样绑死在这个框架上了
当然admin模块足够强大。
如果对admin不是很看重的话,就不一定要选django了 && 其他的比如Flask, bottle, web2py, tornado, pyraimid
谁能大致用两句话说明一下呢 && 比如flask的库不错,这个就很重要,auth/openid什么的就直接用了 &&&& -- &&&&&&&&&&&&&&&&&&&&&&&& IF ART INTERPRETS OUR DREAMS &&&&&&&&&&&&&&THE COMPUTER EXECUTES THEM IN THE GUISE OF PROGRAMS &&&& ※ 来源:·水木社区 newsmth.net·[FROM: 116.197.180.*]
阿土伯 - 是非成败转头空发信人: aturbo (阿土伯 - 再见理想), 信区: Python
标&&题: Re: 谁能简单说一下python几个框架的特点吧
发信站: 水木社区 (Thu Dec&&8 11:43:47 2011), 转信 && 特别同意最后一句 && pyraimid vs flask? && 【 在 Orpherus (奥路菲) 的大作中提到: 】
django很不灵活的,用不了后期,刚开始做就能体会到,
内置模块不大好定制,动不动就要自己覆盖,
django的orm倒是不错,简单实用,功能也算强大,
灵活度很高的网站,django内置的东西大都用不上 && 【 在 aturbo (阿土伯 - 再见理想) 的大作中提到: 】
: 我就知道django
: 中量级、优美,但是后期可能不灵活
: 不喜欢的auth,耦合太紧
: ...................
&& -- &&&&&& -- &&&&&&&&&&&&&&&&&&&&&&&& IF ART INTERPRETS OUR DREAMS &&&&&&&&&&&&&&THE COMPUTER EXECUTES THEM IN THE GUISE OF PROGRAMS &&&& ※ 来源:·水木社区 newsmth.net·[FROM: 116.197.180.*]
阿土伯 - 是非成败转头空发信人: aturbo (阿土伯 - 再见理想), 信区: Python
标&&题: Re: 谁能简单说一下python几个框架的特点吧
发信站: 水木社区 (Thu Dec&&8 11:51:32 2011), 转信 && 顺便说一下库真的很关键,就像java/c++/python再帅,没有强大的库支撑,就是0 && 代码的优美、简洁
模块的耦合程度、易于替换
内置的安全性,xss、csrf && 【 在 aturbo (阿土伯 - 再见理想) 的大作中提到: 】
: 特别同意最后一句
: pyraimid vs flask?
: django很不灵活的,用不了后期,刚开始做就能体会到,
: ...................
&& -- &&&&&&&&&&&&&&&&&&&&&&&& IF ART INTERPRETS OUR DREAMS &&&&&&&&&&&&&&THE COMPUTER EXECUTES THEM IN THE GUISE OF PROGRAMS &&&& ※ 修改:·aturbo 于 Dec&&8 11:56:34 2011 修改本文·[FROM: 116.197.180.*]
※ 来源:·水木社区 newsmth.net·[FROM: 116.197.180.*]
阿土伯 - 是非成败转头空发信人: aturbo (阿土伯 - 再见理想), 信区: Python
标&&题: Re: 谁能简单说一下python几个框架的特点吧
发信站: 水木社区 (Thu Dec&&8 14:14:07 2011), 转信 && 好像flask 几万行代码,bottle区区2/3000行代码
应该bottle比flask少一些功能吧(或者这些功能依赖于外部库吧)
似乎session、cache bottle都没有? && 【 在 abadcafe (abadcafe) 的大作中提到: 】
bottle看上去不错的样子
-- &&&&&& -- &&&&&&&&&&&&&&&&&&&&&&&& IF ART INTERPRETS OUR DREAMS &&&&&&&&&&&&&&THE COMPUTER EXECUTES THEM IN THE GUISE OF PROGRAMS &&&& ※ 来源:·水木社区 newsmth.net·[FROM: 66.129.224.*]
阿土伯 - 是非成败转头空发信人: aturbo (阿土伯 - 再见理想), 信区: Python
标&&题: Re: 谁能简单说一下python几个框架的特点吧
发信站: 水木社区 (Thu Dec&&8 16:41:41 2011), 转信 && 既然如此,为啥不选pylons/pyramid呢
还是因为pyramid等有不如人意的地方吧 && 【 在 adoal (阿豆) 的大作中提到: 】 && 我们项目里在用flask,随着写得代码越来越多,
flask跟我们写的代码加起来,已经越来越像
pylons之类的full stack了,所以……吖的其实
都是浮云…… && 【 在 aturbo (阿土伯 - 再见理想) 的大作中提到: 】
: 好像flask 几万行代码,bottle区区2/3000行代码
: 应该bottle比flask少一些功能吧(或者这些功能依赖于外部库吧)
: 似乎session、cache bottle都没有?
: ...................
&& -- &&&&自以为是的立法者犯下了一个大错,以为自己能定义整个软件开发过程。他们既不了解其 &&开始也不了解其结果。学术界试了一下,然后就知难而退了。商业界则对其毫无办法。大
&&型软件开发商们斥巨资来制造代码,明明想要扮演上帝的角色,却还装作自己是人类的公 &&仆。所有人都在盯着镜子里的自己。计算机却在一旁偷偷的笑。&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& -- &&&&&&&&&&&&&&&&&&&&&&&& IF ART INTERPRETS OUR DREAMS &&&&&&&&&&&&&&THE COMPUTER EXECUTES THEM IN THE GUISE OF PROGRAMS &&&& ※ 来源:·水木社区 newsmth.net·[FROM: 66.129.224.*]
文章数:5&分页:Python学习-编写一个简单的web框架(一)_python_动态网站制作指南
Python学习-编写一个简单的web框架(一)
来源:人气:1248
自己动手写一个web框架,因为我是菜鸟,对于python的一些内建函数不是清楚,所以在写这篇文章之前需要一些python和WSGI的预备知识,这是一系列文章。这一篇只实现了如何处理url。
参考这篇文章:
web框架主要是实现web服务器和web应用之间的交互。底层的网络协议主要有web服务器完成。譬如监听端口,填充报文等等。
Python内建函数__iter__和__call__和WSGI
迭代器iterator
迭代器为类序列对象提供了类序列的接口,也就是说类序列对象可以通过迭代器像序列一样进行迭代。说简单一点就是遍历对象。如果想让类是可迭代的,那么就必须实现__iter__和next()。
只要在类定义的时候实现了__call__方法,那么该类的对象就是可调有的,即可以将对象当做函数来使用。这里只用明白什么是__call__函数即可,因为WSGI规范中用要求。
关于WSGI的介绍可以点击,有很详细的介绍。这里只说明一下大概。WSGI接口是用可调用的对象实现的:一个函数,一个方法或者一个可调用的实例。下面是一个实例,注释写的很详细:
# This is our
object. It could have any name,
# except when using mod_wsgi where it must be "application"
def application( # It accepts two arguments:
# environ points to a dictionary containing CGI like environment variables
# which is filled by the server for each received request from the client
# start_response is a callback function supplied by the server
# which will be used to send the HTTP status and headers to the server
start_response):
# build the response body possibly using the environ dictionary
response_body = 'The request method was %s' % environ['REQUEST_METHOD']
# HTTP response code and message
status = '200 OK'
# These are HTTP headers expected by the client.
# They must be wrapped as a list of tupled pairs:
# [(Header name, Header value)].
response_headers = [('Content-Type', 'text/plain'),
('Content-Length', str(len(response_body)))]
# Send them to the server using the supplied function
start_response(status, response_headers)
# Return the response body.
# Notice it is wrapped in a list although it could be any iterable.
return [response_body]
&简单来说就是根据接收的参数来返回相应的结果。
设计web框架
我之前用过django写过一个很简单的博客,目前放在SAE上,好久没更新了。网址:。一个web框架最基本的要求就是简化用户的代码量。所以在django中,我只需要写view、model和url配置文件。下面是我用django时写的一个处理视图的函数:
def blog_list(request):
blogs = Article.objects.all().order_by('-publish_date')
blog_num = Article.objects.count()
return render_to_response('index.html', {"blogs": blogs,"blog_num":blog_num}, context_instance=RequestContext(request))
def blog_detail(request):
bid = request.GET.get('id','')
blog = Article.objects.get(id=bid)
return render_to_response('blog.html',{'blog':blog})
&需要我完成的就是操作,返回相应的资源。所以我要编写的web框架就要尽可能的封装一些底层操作,留给用户一些可用的接口。根据我的观察,web框架的处理过程大致如下:
一个WSGI应用的基类初始化时传入配置好的url文件
用户写好处理方法,基类根据url调用方法
返回给客户端视图
一个WSGI基类,主要有以下的功能:
处理environ参数
根据url得到方法或者类名,并执行后返回
class WSGIapp:
headers = []
def __init__(self,urls=()):
self.urls = urls
self.status = '200 OK'
def __call__(self,environ,start_response):
x = self.mapping_urls(environ)
start_response(self.status,self.headers)
if isinstance(x,str):
return iter([x])
return iter(x)
def mapping_urls(self,environ):
path = environ['PATH_INFO']
for pattern,name in self.urls:
m = re.match('^'+pattern+'$',path)
args = m.groups()
func = globals()[name]
return func(*args)
return self.notfound()
def notfound(self):
self.status = '404 Not Found'
self.headers = [('Content-Type','text/plain')]
return '404 Not Found\n'
@classmethod
def header(cls,name,value):
cls.headers.append((name,value))
def GET_index(*args):
WSGIapp.header('Content-Type','text/plain')
return 'Welcome!\n'
def GET_hello(*args):
WSGIapp.header('Content-Type','text/plain')
return 'Hello %s!\n' % args
('/','GET_index'),
('/hello/(.*)','GET_hello')
wsgiapp = WSGIapp(urls)
if __name__ == '__main__':
from wsgiref.simple_server import make_server
httpd = make_server('',8000,wsgiapp)
print 'server starting...'
httpd.serve_forever()
&上面的代码是不是很简介了,只需要定义函数即可。
优质网站模板}

我要回帖

更多关于 python web框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信