web.py框架入门

2023-05-16

web.py是python web开发的一个轻量级框架。

web.py可以通过pip命令安装,pip install web.py

编写官网示例代码:

$ vi index.py

import web
urls = (
        "/" , 'hello',
)
class hello:
        def GET(self):
                return "Hello,World!"
app = web.application(urls,globals())
if __name__=="__main__":
        app.run()
运行:

$ python index.py

浏览器查看结果 http://localhost:8080


	
  

以上是一个最简单的官网示例。通过直接返回文字字符串,得到请求结果,我们可以利用web.py提供的模板工具,指定html页面来达到使用模板的效果。

在第一行代码之后增加如下语句:

render = web.template.render('template/')

这句代码指定模板目录在template文件夹中,这样,我们还需要在项目中建立template目录,用来存放html页面。

修改index的GET方法,使用render.index(name='feiy')来代替返回的内容,还带着name参数到页面,这样页面就可以显示$name。

class index:
        def GET(self):
              return render.index(name='feiy');
编辑页面template/index.html内容如下:

$def with(name)

$if name:
        I just wanted to say <em>hello</em> to $name.

$else:
        <em>Hello</em>,world!
启动web,通过浏览器访问http://localhost:8080/



  

连接数据库,这里选择postgres数据库

准备数据库和表


	
  

在第二行代码之后增加连接数据库的语句,如下:

db = web.database(dbn='postgres',user='postgres',pw='',db='mydb')

想要在代码中连接postgres,需要安装postgres数据库驱动库,可以使用pip install pgdb,如果没有安装则会报错:ImportError: Unable to import psycopg2 or psycopg or pgdb
为了测试数据库连接,我们设定,获取数据库中的xx_user表中的数据,并显示在用户列表页面中。

1、修改路由配置

urls = (
    "/" , "index",
   "/list" , "userlist",
)

2、增加路由映射

class userlist:
          def GET(self):
                 userlist = db.select("xx_user")
                return render.userlist(userlist)

3、编写页面

vi template/userlist.html

$def with(userlist)
<ul>
         $for user in userlist
              <li>$user.id|$user.name|$user.mobile</li>
</ul>

最后贴出index.py全部代码

import web
render = web.template.render('template/')
db = web.database(dbn='postgres',user='postgres',pw='',db='mydb')
urls = (
        "/" , 'index',
        "/list" , 'userlist',
)
class index:
        def GET(self):
            return render.index(name='feiy')

class userlist:
        def GET(self):
            userlist = db.select('xx_user')
            return render.userlist(userlist)
app = web.application(urls,globals())
if __name__=="__main__":
        app.run()

4、运行python index.py

5、浏览器查看 http://localhost:8080/list


	
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

web.py框架入门 的相关文章

  • 构建网站翻译文件

    我在建立网站时多次遇到这个问题 我将以使用 PHP 和 Laravel 为例进行解释 但这个问题在多个平台中都很常见 这已经在几个问题中得到了解决 post1 https stackoverflow com questions 317854
  • Tomcat 是否立即支持 JAX-RS(它是否支持 JAX-RS)?

    从教材 RESTful Java with JAX RS 中我们可以读到 如果我们的应用程序服务器是 JAX RS 感知的 或者换句话说 与 JAX RS 紧密集成 则声明我们的ShoppingApplication作为 servlet 的
  • 用于网站的 Git / 接收后 / 测试站点和生产站点的分离

    我使用 Git 来管理网站的源代码和部署 目前测试站点和实时站点在同一个机器上运行 关注此资源http toroid org ams git website howto http toroid org ams git website how
  • 通过站点到站点 VPN 将 Azure 网站连接到本地数据库

    我的目标是运行一个天蓝色的网站 该网站可以访问我们本地公司数据库中的数据 我按照网络上的教程设置了一个 Azure 虚拟网络 并通过站点到站点 VPN 将其连接到我们本地公司网络 在天蓝色门户中 我可以看到连接实际上正在工作 并且数据已被接
  • 尝试访问我的网站时出现内部服务器错误

    我收到这个错误 内部服务器错误 服务器遇到内部错误或配置错误 无法完成您的请求 请联系服务器管理员 电子邮件受保护 cdn cgi l email protection和 告知他们错误发生的时间以及您可能会发生的任何事情 所做的事情可能导致
  • 从 Unity WebGL 调用 Angular2 函数

    目前 我正在使用 Angular2 版本 2 1 2 和 Unity 可视化工具 使用 Unity 5 5 构建 我需要做的是从 Unity 到 Angular2 进行通信 我正在使用类似于下面的代码 public void GetBill
  • JavaScript 中的对象解构[重复]

    这个问题在这里已经有答案了 gt a a true Statement lt a true 上面的语句是赋值true to a 为什么上面的语句在chrome控制台中没有报错 虽然下面的语句给出了错误 gt a a true Stateme
  • WebUSB 和 RFID 读取器

    我想知道是否有人有让 RFID 读取器通过 WebUSB 工作的经验 我使用的阅读器是https www parallax com product 28340 https www parallax com product 28340 根据我
  • Jekyll 在子网站上生成静态网站?

    是否可以将 Jekyll 放在 GitHub 上托管的网站的单个部分上 即是否可以让 example github io 成为常规站点 而 example github io blog 由 Jekyll 静态生成 我相信可以通过创建另一个名
  • asp.NET 2.0网站无法访问App_Code中的类

    将我的网站部署到服务器后 我在访问课程时遇到问题 请注意 这是一个网络Site不是网络应用 错误是 编译器错误消息 CS0246 找不到类型或命名空间名称 Order 是否缺少 using 指令或程序集引用 版本信息 Microsoft N
  • Django - 缺少 1 个必需的位置参数:'request'

    我收到错误 get indiceComercioVarejista 缺少 1 个必需的位置参数 要求 当尝试访问 get indiceComercioVarejista 方法时 我不知道这是怎么回事 views from django ht
  • Web Api - 不允许捕获 405 方法

    截至目前 Web api 应用程序针对 405 方法不允许错误返回以下响应正文 我正在尝试更改响应正文 但我不知道如何使用委托处理程序 ApiControllerActionSelector 或过滤器 谁能帮我捕获服务器端的 405 错误
  • 在 Tomcat 上部署 Java Web 项目,无需 WAR 或 EAR

    我有一个 Java Web 项目 Struts Spring 在我的本地主机上完美运行 我必须将其部署在我的网站上 但虚拟主机提供的 Tomcat Manager 界面显示 由于安全原因 它无法上传 WAR 文件 当联系技术支持时 我被告知
  • Safari 的“阅读器模式” - 开源解决方案? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Safari 有一个 阅读器模式 可以删除网站上除文本之外的所有内容 有谁知道提供相同功能的开源库 或
  • 给定数十亿个 URL,如何确定重复内容 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我在一次编程面试中被问到这个问题 我在下面详细描述了这个问题 这是一个开放式问题 给定数十亿个 URL 深层链接 我如何对哪些 URL
  • wix 安装程序/创建网站并分配新的或现有的 Web 应用程序池

    我尝试使用 wix 安装创建一个新网站 没关系 没有问题 但我无法将新的或现有的网络应用程序池分配给新网站 iis website 标记不包含 WebAppPool 属性 我如何将网络应用程序池分配给网站 你可以在下面看到我的代码 感谢您的
  • 如何用 C 语言通过 HTTP 协议发送图像?

    我是一名正在做网络服务器练习的学生 我需要一些帮助 我的网络服务器在文本页面上运行良好 但是每当浏览器发送一个 GET img jpg HTTP 1 1请求 我不知道如何处理 我听说 HTTP 协议是基于文本的 那么如何在 HTTP 响应中
  • 确定网站的唯一访问者

    我正在创建一个 django 网站 使用 Apache2 作为服务器 我需要一种方法来以完整的证据方式确定我的网站 特别是每个页面 的唯一访问者数量 不幸的是 用户会有很大的动机去尝试 玩弄 跟踪系统 所以我正在努力证明这一点 有什么办法可
  • 如何在 Cakephp 3 中创建按字段集分组的多个复选框

    我在阅读本文档时遇到问题 Cakephp3 Cookbook 表单 创建选择选择器 http book cakephp org 3 0 en views helpers form html creating select pickers我尝
  • Tomcat:源服务器没有找到目标资源的当前表示,或者不愿意透露该表示的存在[重复]

    这个问题在这里已经有答案了 我知道以前有类似的问题 但我仍然找不到正确的解决方案 我得到 源服务器没有找到目标资源的当前表示 或者不愿意透露该表示的存在 我正在使用 Tomcat 服务器 有人可以帮助我吗 以下是我的项目结构 我被这个问题困

随机推荐

  • ubuntu上利用qemu-kvm创建虚拟机

    kvm是Kernel based Virtual Machine的缩写 xff0c 即基于内核的虚拟机技术 xff0c 运行在具备Intel vt或者AMD V功能的x86平台上 在linux2 6 20之后的版本中kvm成为了linux内
  • Fatal error in launcher: Unable to create process using解决办法

    我的机器是windows7 64位机器 xff0c 本来默认安装了pip命令是9 0 1版本的 xff0c 网上有介绍说可以安装1 5 6版本 我考虑将pip更改为1 5 6版本 xff0c 去官网下载一个whl的文件 xff0c 利用pi
  • openstack-install-ubuntu-single说明

    ubuntu1404单机安装部署openstack juno值得注意的地方 xff0c 这里说明一下 先来说说openstack组件 keystone gt 认证组件glance gt 镜像组件 xff0c 负责管理虚拟机镜像nova gt
  • hive自定义函数UDF

    Hive自定义函数 UDF xff0c 可以帮助用户轻松实现在hql语句中展现自定义查询结果 这里以一个简单的连接函数来实现用户自定义函数 xff0c 假设表结构如下 xff1a 表中只有两个简单的字段 xff0c id和name 这里实现
  • Oracle 数据误删的恢复措施

    Oracle中 常见的数据删除操作就三种 xff0c truncate xff0c drop xff0c delete xff0c 下面分类说一下如何恢复 Truncate xff1a 该操作执行后 xff0c 保留表结构 xff0c 清空
  • Hive使用入门

    先介绍一些基本的命令 xff1a 1 进入hive命令行 xff0c 这种方式进入之后 xff0c 操作结果展示时带有执行mapreduce的调试信息 xff1b hive service cli 等同于直接输入hive 2 进入hive命
  • Hive内部表和外部表的区别

    hive作为基于hdfs的数据仓库 xff0c 在构建表的时候 xff0c 会有内部表和外部表 xff0c 这里介绍两者的异同点 相同点 xff1a 1 他们都是用mysql或者derby作为元数据存储 xff0c 他们在元数据的组织上是相
  • hive:For direct MetaStore DB connections, we don't support retries at the client level

    hive创建表和导入数据都没有问题 xff0c 在删除表 xff0c 做drop table 时报如题所示的错误 有的文章说修改元数据库字符集为latin1 但是元数据库字符集默认创建就是latin1 修改字符集无法解决该问题 通过更换my
  • rhel7安装docker

    docker是当下最流行的虚拟化容器技术之一 xff0c 它是基于lxc的一种容器技术 xff0c 该技术已经非常成熟 xff0c 而且在实际应用中已经越来越普遍 很多框架都有对docker的支持 xff0c 包括hadoop spark
  • Openstack使用ubuntu镜像启动虚拟机实例

    一般情况下openstack环境搭建好了之后 xff0c 就是测试启动虚拟机 通常我们会使用一个最基本的镜像cirros 0 3 3 x86 64 disk img来作为镜 像 xff0c 使用glance命令行或者horizon的图形化界
  • docker使用Dockerfile构建镜像

    docker获取镜像 xff0c 除了docker pull docker load之外还可以通过自定义Dockerfile的方式通过命令docker build 来构建新镜像 通过这种方式可以很自由的定义想要安装的镜像 xff0c 想要安
  • django环境搭建

    django是python开发框架 xff0c 是一个丰富的web框架 第一步 xff1a 安装pip wget https bootstrap pypa io get pip py python get pip py 第二步 xff1a
  • docker配置国内仓库镜像registry-mirror

    Docker在默认安装之后 xff0c 当需要下载镜像时 xff0c 通过命令docker pull learn tutoral拉取示例镜像 xff0c 或者其他镜像时 xff0c 都是访问默认的docker hub上的镜像 xff0c 在
  • TypeError: object() takes no parameters

    python面向对象编程第一个坑 TypeError object takes no parameters 出现这个错误 xff0c 一般就是构造函数 init 书写的不对 xff0c 检查一下是否是少了一个下划线或者是少写了一个i字母 x
  • windows上Flask环境搭建

    Flask是python开发框架 用来快速构建web项目 下面介绍如何在windows上搭建flask开发环境并运行一个demo 第一步 创建项目并构建flask环境 mkdir flaskapp cd flaskapp virtualen
  • WebSocket 测试工具

    一 WebSocket 简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户端和服务器之间的数据交换变得更加简单 xff0c 允许服务端主动向客户端推送数据 在WebSocket API中 xff
  • 利用pipework为docker容器设置固定IP

    今天介绍如何在redhat centos7系列机器上使用pipework为docker启动的容器指定一个固定ip 我们知道默认情况下 xff0c docker会使用bridge网络模式为每一个启动的容器动态分配一个IP xff0c 以172
  • 用docker玩坏ubuntu虚拟机容器

    当我们装上docker之后 xff0c 自然会pull一个或多个镜像玩玩 xff0c 这时候 xff0c docker hub仓库上有很多系列操作系统镜像 xff0c 每个系列又有很多不同功能的虚拟机镜像 xff0c 比如centos分6还
  • tornado入门实例

    tornado是python web开发的又一个轻量级框架 tornado框架需要安装 xff0c 为了方便 xff0c 我直接安装了Anaconda 2 4 1 里面直接就带了tornado 还有很多python库 numpy scipy
  • web.py框架入门

    web py是python web开发的一个轻量级框架 web py可以通过pip命令安装 xff0c pip install web py 编写官网示例代码 xff1a vi index py import web urls 61 34