专栏首页用户7289880的专栏python开发web服务器
原创

python开发web服务器

今天教大家如何利用已有的丰富图片资源建一个看图网站

重要的不是知识的数量,而是知识的质量,有些人知道很多很多,但却不知道最有用的东西

准备资料:python 3 +pycharm(编辑器)

库:flask :一个开源的python web服务器框架

jinja2:flask默认的模板引擎

一个最简单的web服务器

python给我们提供了一个接口:WSGI:Web Server Gateway Interface , 它只要求Web开发者实现一个函数,就可以响应HTTP请求。而不用触到TCP连接、HTTP原始请求和响应格式。 下面实例一个最简单的web应用:

•environ:一个包含所有HTTP请求信息的dict对象; •start_response:一个发送HTTP响应的函数。 将两个脚本放在同一目录下,运行server.py,访问 就能看到效果了。 处理url 其实web应用,就是对不同url的处理。 我们将hello.py进行修改

这样就会处理两个url,’/’和’/signin’ 使用模板 上面的方法太累太慢,我们学点比较简便的,直接上代码:

注意,这个是单文件。 来分析这个脚本: Flask通过Python的装饰器在内部自动地把URL和函数给关联起来。

启动运行后,我们访问 ‘/’,看到的页面是一个“HOME”单词 ,‘/signin’,此刻是通过GET访问,看到的是一个表单,填写’admin’和’password’,点击登录 ——> ‘/signin’,此刻是通过POST访问,看但的是Hello, admin!或者Bad username or password. 对于不了解GET与POST和HTML表单的同学,推荐去学习html基础。 但这样还是有些不灵活,用户访问看到的内容需要全部写出来,不能复用,太麻烦 使用模板引擎 模板解决了我们上面的问题。先看一段代码

这里读取了根目录下所有文件的名字,将其传给html模板页面 然后,在.py的同目录下建立目录templates,这里存放的是我们的模板,模板的特殊在于可以使用python指令及变量在html里 home.html

{% %} 中写的是指令 {{ }} 中写的是变量 所以最终的结果是,会生成多个标签,标签的名字就是目录名。 成品 用我们上次爬取的图片来建站,good idea! 这里在.py脚本同目录下建立一个static目录存放图片。(图片放在.py所在目录外层会链接不到)

然后是模板文件 welcome.html

端口为随机端口,范围在2000-2100之中,相信大家都能找到吧。 如果外网还是无法访问请关闭防火墙!! 本节只是给大家一个示范,python如何写web服务器,个人感觉比apache+php有趣得多! 如果本文对你学习有所帮助-可以点赞👍+ 关注!将持续更新更多新的文章。感谢!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学习Python的第一步,Python的环境搭建和下载,Windows下安装Python和linux下安装Python

    Python是一个跨平台、可移植的编程语言,因此可在windows、Linux和Mac OS X系统中安装使用。

    汤贤
  • 斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

    众所周知,斯坦福大学自然语言处理组出品了一系列NLP工具包,但是大多数都是用Java写得,对于Python用户不是很友好。几年前我曾基于斯坦福Java工具包和N...

    汤贤
  • python入门教程python 3.4 安装 pygame 和 wxPython教程

    windows xp 和 server 2003 安装 python, 可用最高版本是 3.4.4。 从 win 7 开始才可以安装 python >= 3....

    汤贤
  • 02.开发环境搭建

    ![Uploading image_749185.png . . .]python,是一种面向对象,解释型的计算机程序设计语言【废话】

    大牧莫邪
  • 面试题十九期-测试开发面试题之python系列-这个中~

    就算所有人都不支持你。这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但努力了就不会有遗憾。

    测试小兵
  • PageAdmin、WordPress与dedeCMS网站模板制作总结

    PageAdmin、WordPress与dedeCMS作为国内三大cms建站系统,经常在功能性,操作性和负载等方面进行对比,每个cms的侧重点都不一样,所以没有...

    用户4831957
  • TensorFlow Lite for Android 初探(附demo)

    TensorFlow Lite 是用于移动设备和嵌入式设备的轻量级解决方案。TensorFlow Lite 支持 Android、iOS 甚至树莓派等多种平台。

    OpenCV学堂
  • C#4.0新增功能01 动态绑定 (dynamic 类型)

    C# 4 引入了一个新类型 dynamic。 该类型是一种静态类型,但类型为 dynamic 的对象会跳过静态类型检查。 大多数情况下,该对象就像具有类型 o...

    张传宁老师
  • 动态 | ACL 2018 公布四篇最佳 demo 候选论文,三篇论文第一作者来自中国

    雷锋网 AI 科技评论按:7 月 9 日,自然语言处理顶会 ACL 公布了最佳 demo 论文的四篇候选论文,名单如下:

    AI科技评论
  • NATURE NEUROSCIENCE:大脑动态隐性状态是行为导向的工作记忆的基础

    来自牛津大学的学者Michael J Wolff等人在Nature Neuroscience期刊上发文,提出了一种功能扰动的方法来探测大脑的隐性状态,...

    用户1279583

扫码关注云+社区

领取腾讯云代金券