Flask实践:猜数字游戏

Demo体验:猜数字 – Flask
难度:1
使用扩展:Flask-Bootstrap、Flask-WTF

guess1

 

本文首发于知乎专栏:Hello, Flask!

– – – – –

每个学编程的人大概都写过猜数字游戏,今天我们用Flask来做一个Web版本的猜数字。功能很简单,只有两个路由,三个模板和一个表单组成。扩展的版本见项目的Github页面(页尾)。

项目结构

实现代码

guess.py

index.html

guess.html

完整的项目见源码(底部)。

相关知识

  • session(会话)

session是Flask的上下文(context)全局变量,可以用来存储(用字典的形式)请求之间需要“记住”的值。在这个猜数字游戏里,我使用它来存储生成的随机数和剩余的机会次数。

要使用session,得先设置一个secret key,这用来给Cookie签名以加密session,这样做的效果是用户可以看到cookie但不能篡改它。尽管如此,session并不是安全的,不能用来存储密码,这个视频演示了一个破解session的过程:https://youtu.be/mhcnBTDLxCI

更多细节见:http://flask.pocoo.org/docs/0.11/quickstart/#sessions

安装和运行

源码地址:https://github.com/helloflask/guess-flask

下载或使用git命令克隆项目后,切换到程序根目录。使用virtualenv创建一个虚拟环境,激活后使用pip安装所需依赖:

然后运行:

访问: http://127.0.0.1:5000/

上面的代码稍微美化一下,变成了下面这样:
guess2

源码:https://github.com/helloflask/guess

Demo:http://guessguess.herokuapp.com/

说说你的想法吧!

邮箱不会被公开,必填项已用*标出。

*

*