鱼C论坛

 找回密码
 立即注册
查看: 1984|回复: 6

[技术交流] 【Python】Web开发【3】

[复制链接]
发表于 2020-3-6 18:08:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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】

喜欢,别忘了:

                               
登录/注册后可看大图

评分

参与人数 1贡献 +2 收起 理由
zltzlt + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-6 18:22:52 From FishC Mobile | 显示全部楼层
请问,不经过后台,如何跨域
网上说,无法实现
我狠好奇,requests是如何实现的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 18:28:14 | 显示全部楼层
wp231957 发表于 2020-3-6 18:22
请问,不经过后台,如何跨域
网上说,无法实现
我狠好奇,requests是如何实现的

什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 18:30:12 From FishC Mobile | 显示全部楼层
LYF511 发表于 2020-3-6 18:28
什么意思?

跨域请求没听过吗
我到我家仓库取东西,可以取到
但是我到你家仓库拿东西,你就不让
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 18:39:51 | 显示全部楼层
wp231957 发表于 2020-3-6 18:30
跨域请求没听过吗
我到我家仓库取东西,可以取到
但是我到你家仓库拿东西,你就不让

requests实现了???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 18:42:15 From FishC Mobile | 显示全部楼层
LYF511 发表于 2020-3-6 18:39
requests实现了???

requests请求任何网站不都是跨域吗?(我自己理解)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 18:46:28 | 显示全部楼层
wp231957 发表于 2020-3-6 18:42
requests请求任何网站不都是跨域吗?(我自己理解)

requests是从本机发起的,不是域啊
它就是获取数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 05:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表