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()又是执行什么
1.sys没用到,可以不导入
2.第二个代表处理访问/Service/hello时的类,也就是hello类,当然这个名字不规范,应该为Hello
3.app赋值这个是你import的web里的一个application方法,给此方法传递相对应参数,这个你的就得按人家的要求写了,没有为什么
4.是的,当给/Service/hello这个url发get请求时,页面上会返回hello world
5.这个就很简单啦,意思是,当你直接运行此python文件时这个web才会启动,如果是被其他Python调用的话就不会启动
②url是提供给访问hello类的方法么,如果是,那么为什么写成两部份,第一部分写成路径的样子,第二部分又代表什么?
③app赋值中application的方法中:
url->urls ?
globals() 代表什么
⑤if __name__ == "__main__":
是说运行此python文件这个web才会启动,以此类推,在我导入其他模块时,用这一行代码进行执行调用模块 ,可以么,还是说在特定情况下使用或有什么规则么?
ps:学习python有什么要注意的么
@lcbalabala:
1.url只是一个元组,第一个元素是一个类似访问url的字符串,第二个是一个类名的字符串,你之后不是这个url当参数传给web.application了嘛,意思就是当这个web启动后,如果有访问/Service/hello这个url的就交给hello这个类去处理,当然,这个逻辑是web.application里定义的
2.这个传的应该是写错了,应该传url不是urls,因为这里面没定义urls,globals()也是一个具体不清楚估计是全局生效的意思吧,跟他对应的应该有单独生效的参数
3.其实本质的意思是直接运行的是此文件才会触发app.run(),然后你的web就起来了,这个是个习惯用法,没有什么很特殊的意思
@北方姆Q: 按照上面的讲解,我理解了一下:
1、我导入web模块
2、给了一个“Hello”的类,定义:如果我访问我自己那么返回“hello,world!”
3、if ...:如果执行此文件,app运行,之前给app赋值的web.application()开始执行,同时调用之前赋值的url,找到“/Service/hello”路径下的hello类
这样理解可以么?
@lcbalabala: 理解的很好,很萌
@北方姆Q:
if __name__ == "__main__": 这句代码分为两种情况:
①当执行此文件时,__name__等于__main__,执行条件下的程序
②当其他文件导入此文件时,文件名就发生变化,不会执行条件下的程序