马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 LYF511 于 2020-3-14 09:05 编辑
哈喽,大家好,今天我们来继续学习Python Web开发【3】
ps:本课程没有特别深奥的地方(如:数据库等),会Python和一点html基础就可以学习!
没错,我居然准时更新了!
今天,我们将围绕上次的课后作业来展开学习(没错,又是这一句),还有额外内容!
鱼油:喂,你是不是在水贴?
我:才不是啦,下一次课就实战了!
鱼油:
我:保证保证~
1.添加图片
鱼油:直接加一个img标签就行了嘛?
我:你试试?
我这里提供一张图片~
改改hello.html就行了
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
你好, web!
<img src='Python.jpg' alt='加载失败'>
</body>
</html>
F5走起!
鱼油:怎么回事“加载失败”
我:对啊(不出所料)
鱼油:为什么?
我:看看日志(IDLE)
"HTTP/1.1 GET /Python.jpg" - 404 Not Found
我们明明上传了呀?为什么还显示404?
首先,我们要弄清一个概念:
web.py不是物理路径,是“虚拟路径”,可以理解为web.py做一个判断,调用句柄,没有句柄就404了(实际复杂得多)。
还要弄清一个概念:
urls=('正则表达式1', '对应句柄1', '正则表达式2', '对应句柄2'...)
所以,我们应该添加一对url,main.py改成:
import web
urls = (
'/' , 'HelloHandle',
'/Python.jpg', 'GetPythonJpgHandle'
)
class HelloHandle(object):
def GET(self):
return open('hello.html', 'r', encoding='utf-8').read()
class GetPythonJpgHandle(object):
def GET(self):
return open('Python.jpg', 'rb').read()
app = web.application(urls, globals())
app.run()
F5走起
鱼油:每个图片加一个句柄也太多了吧!
我:接着来看
没关系,我们可以化成一个句柄,main.py改成:
import web
urls = (
'/' , 'HelloHandle',
'/(.+\..+)', 'GetFileHandle'
)
class HelloHandle(object):
def GET(self):
return open('hello.html', 'r', encoding='utf-8').read()
class GetFileHandle(object):
def GET(self, url):
return open(url, 'rb').read()
app = web.application(urls, globals())
app.run()
还是一样,F5走起!
是不是正常了?
鱼油:为什么正则表达式有个括号?
我:因为括号里匹配的内容会当作参数传入对应的句柄的GET方法
终于讲完了,
这是什么?↑
囧
没错,我囧了
2.花生壳食用指南(有服务器的请忽略,路由器有转发功能的、不嫌弃地址是IP的请忽略)
花生壳官网指南
原谅我累了
需要注意的是:
类型选HTTP(好像要几块钱)
外网端口填80
内网主机填你的IP地址
内外端口填8080
访问密码随便你填
3.路由器设置转发功能(有服务器的请忽略,有花生壳的请忽略,路由器没有转发功能的请忽略)
百度经验
不符合的请自行百度
需要注意的是:
防火墙关掉
修改为静态IP(自行百度)
外网端口填80
内网主机填你的IP地址
内外端口填8080
写一篇帖子都累了,所以:
今天没有作业,好好回顾回顾就行
下一节课:【Python】Web开发【4】
|