Python自学周记(六)

这周学习了书上最后3个习题,制作简易的网站。

首先要安装 flask ,他是一个web框架,对初学者来说,首先要清楚框架这个概念:所谓框架,就是做某件事的基本结构,基本思路,它就像大楼的钢筋骨架一样,在钢筋骨架的基础上,安装墙体,地板,增加门窗装饰,能让工作变得容易高效。用书上的话说,就是“让某件事做起来更容易的安装包”。而web框架,就是让web开发更容易的安装包。

下一步就是要创建一个最基本的flask应用程序,这里会用到一个新的东西:@app.route(’/’),它是一个装饰器。什么是装饰器?装饰器只是一种接收函数(就是那个用“@”符号装饰的函数)的函数,并返回一个新的函数。当装饰一个函数时,就是告诉Python调用的是那个由装饰器返回的新函数,而不仅仅是直接返回原函数体的执行结果。这里的app是该文件的名字。

执行app.py,会看到这样的结果:

Python实习周报怎么写 python周记_服务器


这个 http://127.0.0.1:5000/ 就是你所创建网址的用户名,把它复制到浏览器中打开,就能看到你预想的结果。但是它并不是一个网页,我们需要用HTML语言编写一个简易的响应页面。

在这里贴上web游戏程序中用到的HTML,做了相应的备注:

{% extends "layout.html" %}

{% block content %}

<hl>{{ room.name }} </hl>                       <!--房间名-->    
<pre>
{{ room.description }}
</pre>

{% if room.name in ["death","The End"] %}       <!--如果到了死亡的房间,则网页上显示:Play Again?-->
      <p><a href="/">Play Again?</a></p>
{% else %}      <!--如果没有死亡,则显示当前房间信息-->     
 <p>
    <form action="/game" method="POST">          <!--列表格式-->         
     - <input type="text" name="action"> <input type="SUBMIT">            <!--需要输入的内容-->      
     -   </form>
  </p>
{% endif %}

{% endblock %}

给我的感觉,HTML像是给python中的信息规定了格式,一种在网页上必须遵守的排版规则。

结合创建网站的经过,学习web的工作原理:
通过python得到网站(你的服务器域名)之后,在浏览器上输入网址,然后浏览器通过网络接口传到互联网,再由互联网传到我的服务器。我的服务器接收请求之后,我编写的web应用程序就去处理这个请求,就是运行装饰器下面定义的内容。然后原路返回到浏览器,显示出结果。每次刷新网页,都会进行这样的一个循环。

最后的习题是编写一个web游戏,就是把之前习题43的游戏在网页上呈现出来,可以说是对前两个所学内容的巩固提升,书上要求把每个死亡的场景都编写出来,就是把每种死亡的情况放进不同的函数中,安装游戏规则返回这些函数,部分代码如下:

central_corridor_dodgedeath=Room("death",
"""
就像一个世界级的盒子,你躲闪,编织,滑动和当Gothon的冲击波
发出激光时,向右滑动过了你的脑袋。 在你巧妙的躲闪中间你的脚滑
了,你的头撞在金属上墙和传递出去。 你很快就醒来了,Gothon踩到
你的头并吃掉你。
""")

central_corridor.add_paths({
        'shoot!':central_corridor_shootdeath,
        'dodge!':central_corridor_dodgedeath,
        'tell a joke':laser_weapon_armory
})

这里的 central_corridor_dodgedeath 函数就是对应输入 dodge! 的结果。

运行结果:

Python实习周报怎么写 python周记_Python实习周报怎么写_02

Python实习周报怎么写 python周记_Python实习周报怎么写_03

到此,笨办法学python3已通读一遍,习题也近乎完成,之后复习的同时也开始准备下一步的学习。