Python Flask 初探
来源:互联网 发布:最新中英文翻译软件 编辑:程序博客网 时间:2024/06/05 08:04
最近,搞了一台腾讯云的学生优惠服务器,不知道干什么。突然想到能够挂个网站,也想顺便学一下python(脚本之中我的最爱),就选择了轻量级的网站框架Flask。下面就简单的总结一下我的学习过程。
图书选择
在书的选择方面,依然决然的选择了《FlaskWeb开发:基于Python的Web应用开发实战》。理由有两个:一是,我有一定的Python基础,不用从零学习Python基础知识;二是,只有二百来页啊,页数少啊,能简单入门就可以了,太厚的书,太细节,不好找重点。
学习Flask基础部分开始
这一部分就是课本的第一部分,简单介绍了程序结构、模板、表单、数据库、电子邮件和大型程序的结构。这些都是构建程序的基础,这个必须得好好学习啊!打不好基础,就等于白浪费时间啊。
- 程序结构
学习程序结构,要求你着重学习Flask的基本结构,一个中心思想就是页面路由关联视图函数,每次请求都是由视图函数处理,视图函数返回字符串或者是返回渲染的页面。另外,函数定义时会有一行标记,用来说明导航的位置。视图函数结构如下:
@app.route('/')def index(): user_agent = request.headers.get('User-Agent') return '<p>Your browser is %s</p>' % user_agent
index函数就是一个视图函数,@app.route(‘/’)一行是标记定义导航的位置为根目录。
启动服务器语句:
if __name__ == '__main__': app.run(debug=True)
这种方式启动服务器,能够确保是执行该脚本启动的服务器,如果其他脚本引入该脚本,则不会启动服务器。
- 学习模板
Jinja2是一个强大的模板引擎。模板是一个包含响应文本的文件,其中包含占位变量表示的动态部分,其值只在请求的上下文中才能知道。使用真实值代替占位变量的过程叫做渲染,渲染模板的函数是render_template。模板长这样:
<h1>Hello {{name}}!/h1>
两个大括号中间的name就是一个占位变量。
同时,模板中还可以嵌入block语句块,用来界定页面的布局、占位填充或者是逻辑代码。如:
{% extends "base.html" %}{% block title %}Index{% endblock %}{% block head %} {{ super() }} <style> </style>{% endblock %}{% block body %} <h1>Hello, World!</h1>{% endblock %}
有了占位块和占位变量的知识以后,我们就可以顺理成章地理解和运用Flask-BootStrap了。(这里不再详述了)
在实际开发中为了系统的友好性,常常设置错误页面。如,处理404或500等错误。Flask同样包含这样的设置,如下代码:
@app.errorhandler(404)def page_not_found(e): return render_template('404.html'),404@app.errorhandler(500)def internal_server_error(e): return reder_template('500.html'),500
有了上面代码,当系统遇到404或500错误时,系统会自动跳转到相应的错误界面。
这一部分还包含静态文件的路径获取和Flask-Moment本地化时间和日期的学习,由于比较简单繁琐,这里就简述到这。
学习web表单
python处理web表单使用了一个扩展Flask-WTF,它可以将处理表单的过程变得十分简单。
Flask-WTF使用一个给定的密钥生成加密令牌,再用令牌验证表单中数据的真伪,来避免遭受跨站请求伪造的攻击。密钥设置方式如下:app=Flask(__name__)app.config['SECRET_KEY']='your secret key'
开始设计一个表单。表单设置分为两步,第一步是设计表单类,第二步是在页面中设置布局。下面先设计表单类,将表单类简单地设计成包含一个输入框和提交按钮。代码如下:
class NameForm(Form): name=StringField('What is your name?',validators=[Required]) submit = SubmitField('Submit')
使用偷懒的方式建立表单页面,主要代码如下:
{% import "bootstrap/wtf.html" as wtf %}{{ wtf.quick_form(form) }}
- Python Flask 初探
- flask初探
- windows下flask初探
- flask(python)
- Python Flask
- python+flask
- python flask
- 1、Flask初探-快速入门
- python flask mysql-python
- Flask -- Python 微框架
- python Flask配置笔记
- Python Flask笔记
- python Flask 学前班
- python Flask JQuery使用说明
- 安装flask for python
- python Flask EasyUI使用说明
- python+flask+postgresql 学习
- Python Flask script 使用
- FreeCMS视频教程 将FreeCMS导入myeclipse
- 【杭电3466】贪心+背包
- Codeforces Beta Round #17D. Notepad
- 傀儡进程原理及调试
- 268. Missing Number
- Python Flask 初探
- 哈夫曼编码
- 题目一:n个人叫m次.第m个人淘汰,重新开始,一直到最后一个人的问题(java)
- JZOJ 4679 种树【NOIP2016提高A组8.11】
- idea 加载不到 artifact
- Selenium浏览器之间转换
- jQuery-为动态添加的元素绑定事件
- 生成验证码
- 数据结构实验之查找三:树的种类统计