猪圈里的公民

我的学校有一个很奇怪的事情。

学校的网络由现代技术中心控制,按照程序的设定,每周日到周四晚上十一点断网。但是遇到一些小的假期(比如说中秋节、端午节),这些假期常常是在断网的这几天,这时因为工作人员没有去修改设定,所以仍然会像往常一样断网。

Flask问题集:单个页面两个(多个)表单

出于简化交互的考虑,我们经常见到很多网站把登录页面和注册界面放在同一个页面上,而当我们使用Flask来实现时,却发现问题重重:

  • 不管是哪个表单按下了提交按钮,总是提交第一个表单的数据;
  • 当一个表单数据验证出错时,两个表单都出现了错误提示;

问题的解决

简单来说,问题的主要原因是Flask-WTF的form1.validate_on_submit()并不验证是哪个表单的submit按钮被按下了,只是通过HTTP方法是否是“PUT”或“POST”来判断。

Flask笔记(5):表单

Flask有众多的扩展来简化集成各种常用的库和框架,比如Flask-Bootstrap集成了Bootstrap,Flask-WTF集成了WTForms。这篇要介绍的就是Flask-WTF。

 

安装和配置

安装很简单,使用pip:

pip install flask-wtf

Flask-WTF默认支持CSRF(跨站请求伪造)保护,只需要在程序中设置一个密钥。Flask-WTF使用这个密钥生成加密令牌,再用令牌验证表单中数据的真伪。(关于Flask项目的配置和初始化,后续文章会谈到)你可以使用app.config字典来存储配置变量:

CSS笔记:Layout

目录

一、Display

元素的默认display值是block或inline。

block

block层级的元素总是新起一行,占全宽度。下面的元素默认为block:

<div>
<h1> – <h6>
<p>
<form>
<header>
<footer>
<section>

如果不想让block元素占据全宽度,可以使用width属性设置宽度,同时,如果想让内容适应不同大小的屏幕,使用max-width

Flask笔记(1):环境搭建与项目结构

环境搭建

完成一个Flask项目需要三个工具: – git:用于版本控制 – pip:用来安装各种包 – virtualenv:用来创建虚拟环境 git和pip是基本工具,就不多说了,这里主要介绍一下virtualenv。

virtualenv

virtualenv可以用来建立一个独立的Python虚拟环境。你可以为每一个项目建立不同的虚拟环境,各个环境互相独立。这样可以带来很多好处:方便分发项目,避免Python环境杂乱。 在Python3.4中,可以使用原生的pyvenv。 使用pip安装virtualenv

对Stack Overflow的思考

我大约在2015年的年末注册了Stack Overflow(下面简称SO)。那时候正在学Python,在Google上搜索编程方面的问题,跳出来的很多结果都是SO上面的,于是顺便注册了一个账号。直到最近才开始使用它,发现这不是一个普通的网站。

Stack Overflow是什么?

简单的说,这是一个问答网站(包括StackExchange),有人提出关于编程的问题,然后有人来回答。 每一个用户在SO都有一个Reputation值(声誉),类似于积分。你回答的问题得到了vote up(+10),或是被提问者接受(+15),你会获得相应的reputation。而如果你做了坏事,乱写答案被vote down(-2),发表不友善的内容被六个人标记(-100),你会被减掉相应的reputation。一定的reputation可以解锁Privileges(特权),privileges控制着你在SO上的权限。简单列举几个: 15个reputation可以vote up; 50个reputation可以对问题进行评论; 125个reputation可以vote down(同时减掉一个reputation); 1500个reputation可以创建标签; 2000个reputation可以修改别人的问题和答案; 25000个reputation可以获得里程碑特权(Milestone Privilege),这时你可以接触到网站的内部数据。 这样的声誉系统和特权系统带来的是什么呢?一个由社区用户们运行和管理的,有着良好的秩序、效率和氛围的问答网站。 除此之外,SO还有成就系统和影响力数据。一共有金银铜三种勋章,当你完成了特定的任务后就可以获得。而影响力是你的答案帮到了多少人,和你的其他活动数量:投票,标记和修改。