pycharm通过模拟器控制视图的流程,再结合代码的嵌入,实现web的连接。
在其最基本的层面上,web应用包含了一组程序(或者函数),当用户访问相应的URL时,该程序将被执行。同时,程序的输出返回给用户,并呈现在浏览器中。
web框架是为了让开发者更快,更简洁,无差错的开发新应用。它通过提供API和开发工具,以减少代码的编写量。
开发web应用的两个经典方法是:
通过编程生成HTML代码将代码嵌入HTML页面中
早期的CGI脚本遵循第一种模型。下列脚本遵循第二种模型,例如PHP[php](代码用PHP编写,类似C语言)、ASP(代码用Visual Basic编写)以及JSP(代码用Java编写)脚本。
这里举一个PHP程序的例子,执行时,从数据库中获得数据,并返回一个显示选中记录的HTML页面。
<html><body><h1>Records</h1><? mysql_connect(localhost,username,password); @mysql_select_db(database) or die( "Unable to select database"); $query="SELECT * FROM contacts"; $result=mysql_query($query); mysql_close(); $i=0; while ($i < mysql_numrows($result)) { $name=mysql_result($result,$i,"name"); $phone=mysql_result($result,$i,"phone"); echo "<b>$name</b><br>Phone:$phone<br /><br /><hr /><br />"; $i++; } ?></body></html>
这种方法的问题在于,程序代码嵌入到HTML中,但是这个程序在生成额外的HTML的同时,还要生成SQL语句查询数据库,应用的不同层次交织在一起,代码变得难以阅读和难以维护。对于Ajax应用程序,情况就更糟了,随着应用页数(文件)的增加,复杂性也增加。
上述例子的功能,在web2py中可用两行Python代码来表达:
def index(): return HTML(BODY(H1('Records'), db().select(db.contacts.ALL)))
在这个简单的例子中,页面结构由HTML,BODY和H1对象程序化表示;通过select语句查询数据库db;最后,所有结果都被序列化成HTML代码。注意db不是关键字,而是一个用户定义的变量。为了避免混淆,我们将始终使用db这一术语来指代数据库连接。
web框架通常分为两种类型:一种是“胶水”框架,通过组合(粘合)几个第三方组件来构造。另一种是“全功能栈”框架,通过创建特别设计的紧密整合和协作工作的组件来构造
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有