首页 新闻 会员 周边 捐助

网上看到Python的web小程序,不太明白(我是小白-_-~)

0
悬赏园豆:10 [已解决问题] 解决于 2017-10-25 18:22

import sys

import web

url = ("/Service/hello","hello")

app = web.application(urls,globals())

class hello:

  def Get(self):

    return"hello,world!"

if __name__ == "__main__":

  app.run()

①导入sys为了什么

②url的赋值括号里面第一部分代表路径,第二部分代表文件名?

③app的赋值整个都不明白为什么这么写

④定义了一个类“hello”,后面给Get(self)是代表访问自己返回hello world?

⑤if __name__ == "__main__":

  app.run()

是说什么,什么情况下判定相等,app.run()又是执行什么

lcbalabala的主页 lcbalabala | 初学一级 | 园豆:193
提问于:2017-10-24 23:57
< >
分享
最佳答案
0

1.sys没用到,可以不导入

2.第二个代表处理访问/Service/hello时的类,也就是hello类,当然这个名字不规范,应该为Hello

3.app赋值这个是你import的web里的一个application方法,给此方法传递相对应参数,这个你的就得按人家的要求写了,没有为什么

4.是的,当给/Service/hello这个url发get请求时,页面上会返回hello world

5.这个就很简单啦,意思是,当你直接运行此python文件时这个web才会启动,如果是被其他Python调用的话就不会启动

收获园豆:10
北方姆Q | 小虾三级 |园豆:1120 | 2017-10-25 10:23

②url是提供给访问hello类的方法么,如果是,那么为什么写成两部份,第一部分写成路径的样子,第二部分又代表什么?

③app赋值中application的方法中:

url->urls ?

globals() 代表什么

⑤if __name__ == "__main__":

是说运行此python文件这个web才会启动,以此类推,在我导入其他模块时,用这一行代码进行执行调用模块 ,可以么,还是说在特定情况下使用或有什么规则么?

 

ps:学习python有什么要注意的么

lcbalabala | 园豆:193 (初学一级) | 2017-10-25 16:40

@lcbalabala: 

1.url只是一个元组,第一个元素是一个类似访问url的字符串,第二个是一个类名的字符串,你之后不是这个url当参数传给web.application了嘛,意思就是当这个web启动后,如果有访问/Service/hello这个url的就交给hello这个类去处理,当然,这个逻辑是web.application里定义的

2.这个传的应该是写错了,应该传url不是urls,因为这里面没定义urls,globals()也是一个具体不清楚估计是全局生效的意思吧,跟他对应的应该有单独生效的参数

3.其实本质的意思是直接运行的是此文件才会触发app.run(),然后你的web就起来了,这个是个习惯用法,没有什么很特殊的意思

北方姆Q | 园豆:1120 (小虾三级) | 2017-10-25 16:53

@北方姆Q: 按照上面的讲解,我理解了一下:

1、我导入web模块

2、给了一个“Hello”的类,定义:如果我访问我自己那么返回“hello,world!”

3、if ...:如果执行此文件,app运行,之前给app赋值的web.application()开始执行,同时调用之前赋值的url,找到“/Service/hello”路径下的hello类

这样理解可以么?

lcbalabala | 园豆:193 (初学一级) | 2017-10-25 17:14

@lcbalabala: 理解的很好,很萌

北方姆Q | 园豆:1120 (小虾三级) | 2017-10-25 17:49

@北方姆Q: 

if __name__ == "__main__":   这句代码分为两种情况:

①当执行此文件时,__name__等于__main__,执行条件下的程序

②当其他文件导入此文件时,文件名就发生变化,不会执行条件下的程序

lcbalabala | 园豆:193 (初学一级) | 2017-10-26 17:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册