15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > python框架web.py,快速实现登录和展示网页开发

python框架web.py,快速实现登录和展示网页开发

时间:2023-05-25 14:21:02 | 来源:网站运营

时间:2023-05-25 14:21:02 来源:网站运营

python框架web.py,快速实现登录和展示网页开发:python中有几个有名的框架 ,有django这样功能强大的框架,也有flask、web.py这样轻量级的快速上手框架。

web.py是一个小巧灵活的框架,简单且功能强大,源代码很简短。

webpy的作者是Aaron H.Swartz,一位伟大的程序员,他在2013年1月11日自杀身亡,结束了短暂的26年生命。但是,作为一个开源项目,目前还是有很多开发者在持续更新。

下面,我们简单介绍一下如何使用web.py,快速地构建一个登陆和展示数据的网页。

我们的目标是实现两个功能:

第一个,是读取数据库的记录展示到Web页面中,并且实现增删改查。

第二个是实现一个登录认证功能。

有了这两个功能页面,就可以开发一些简易的web系统了,毕竟所有的web页面除了美工之外,本质就是对数据库的增删改查逻辑。

好的,下面我们开始。

第一步,安装Web.py

关于Web.py的了解可以查看官方网站https://webpy.org/.

官网特别的简单,主要就是功能介绍。

在pycharm中使用pip命令安装 pip install web.py ,默认安装的是0.62版本,pip list展示结果如下

安装之后,就可以使用官网提供的示例验证是否成功。

import weburls = ( '/(.*)', 'hello')app = web.application(urls, globals())class hello: def GET(self, name): if not name: name = 'World' return 'Hello, ' + name + '!'if __name__ == "__main__": app.run()一定理解web.py的工作过程:

  1. 第一步,用户输入网址,先由urls进行路由分配,就是用户输入的网址跳转到某个类方法来处理。网址/后面的字符串必须对应某个事先定义的某个类的方法,也会有个默认方法,就是上面都不带的时候由默认方法处理。比如/add, 主程序中必然有个类与之对应,类的名称就是urls可以定义的。
  2. 第二步,由这个类的方法负责进行具体逻辑的处理,处理的结果使用Render来retrun到某个web页面,或者seeother跳转到其它url,然后又是重复上面的过程。
  3. 第三步,跳转到具体页面时,可以带上参数,参数可以理解为需要展示的数据集或者某个处理的反馈结果。
  4. 第四步,html文件接收到参数(使用$def with(参数名))引用,由html页面和css负责排版来展示。
只有深刻理解了这个过程才能用好Web.py。

第二步 使用Web.py读取数据库到Web页面

实现四个功能,增删改查。

urls功能说明,其中注意/add,后面对应是调用的类和方法,而不是html文件名称。先创建urls文件,单独配置路由。如下图所示。

用户输入网址,跳转到index方法,add等对应add类,等等。

import weburls = ( '/', 'index', '/add', 'add', '/delete', 'delete', '/select', 'select', '/st', 'st')# 以上要注意格式,最后一个没有空格。接着,创建主程序文件

import webimport datetimefrom urls import urls# 引入模板文件render = web.template.render("templates/")db = web.database(dbn='mysql', host='数据库IP地址', user='账户', pw='密码', db='数据库名')app = web.application(urls, globals())# print(datetime.datetime.now())class index: def GET(self): todos = db.select('todo', where='is_delete=0') print(datetime.datetime.now()) return render.index(todos)class select: def POST(self): f = web.input() print(f) todos = db.select('todo', where='id=%s' % f.id) return render.index(todos)class add: def POST(self): i = web.input() # print(datetime.datetime.now()) n = db.insert('todo', title=i.title) # print(datetime.datetime.now()) raise web.seeother('/')class delete: def GET(self): t = int(web.ctx['query'][4: : ]) print(t) print(type(t)) n = db.update('todo', where="id={}".format(t), is_delete=1) # n = db.query('update todo set is_delete=1 where id= t') print(n) raise web.seeother('/')if __name__ == "__main__": app.run()创建HTML文件index.html,为了方便起见就不使用css来控制样式了。

$def with (todos)<div bordor="1"><h2 align="center" color="red">结果展示</h2><form method="post" action="select"><p><input type="text" name="id" /> <input type="submit" value="查询操作" /></p></form> <table border="1" align="center"> <tr> <th>id</th> <th>name</th> <th>操作</th> </tr> $for todo in todos: <tr> <td> id="$todo.id" </td> <td> $todo.title </td> <td> <a href="/delete?id=$todo.id" class="btn btn-danger btn-xs">删除</a> </td> </tr></table></div><form method="post" action="add"><p><input type="text" name="title" /> <input type="submit" value="Add" /></p></form>
HTML最终展示页面



这是一个标准的增删改查功能页面,做的比较简陋。

不过,已经初步具备了使用web.py所有功能的过程,比如,连接和操作数据库,将数据查询出来使用html展示,在页面中进行删除操作。

第三步,使用css来控制样式,提升页面的风格

最终的效果如下:

login.html文件

$def with ()<form id="login" action="" method="POST"><table align="left"><tbody> <tr> <td><label for="username">帐号</label></td> <td><input type="text" id="username" name="username" /><span class="validate_tip"></span></td> </tr> <tr> <td><label for="password">密码</label></td> <td><input type="password" id="password" name="password" /><span class="validate_tip"></span></td> </tr> <tr> <td></td> <td><a href="/stock" id="find_password">返回首页</a></td> </tr> <tr><td><input type="submit" id="login_btn" value="登录" /></td></tr></tbody></table></form>CSS脚本如下

body{ background-color:#00000; margin:0; padding:0; font-family:sans-serif; background:url(../img/back.jpg) no-repeat fixed top;}.sign-up-form { width: 300px; box-shadow: 0 0 3px 0 rgba(0000.3) background: #fff; padding: 20px; margin: 8% auto 0; text-align: center; border:0px solid #000; } .sign-up-form h1{ color: #1c8adb; margin-bottom: 30px;}.input-box{ border-radius:20px; padding:10px; margin:10px 0; width:100%; border:1px solid #999; outline:none;}button{ color: #fff; width: 100%; padding: 10px; border-radius: 20px; font-size: 15px; margin:10px 0; outline:none;}.signup-btn{ background-color: #1c8adb;}后面的工作就是持续优化了,比如要设置登陆cookie检测用户是否处于登陆状态,加强系统的安全性等等。

本篇只作为简单的入门示例,如果点赞活着关注多的话,后续再更新完善这篇文章。

关键词:展示,实现

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭