python--flask使用
Flask是一个使用 Python 编写的轻量级 Web 应用框架。
下面我将使用Flask框架,创建一个简单的html页面示例。
1.项目的目录结构如下所示:
exweb\
uniqueenv\
app.py
templates\
base.html
hello_form.html
index.html
2.创建网站根目录exweb
mkdir exweb
3.在网站根目录下创建一个虚拟环境,虚拟环境是主python的一份拷贝,好处是你可以只安装flask包到该虚拟目录,你的主python不会受到影响,另一个好处是你不需要再有root权限
cd exweb
virtualenv uniqueenv
4.安装flask
uniqueenv/bin/pip install flask
5.flask使用,app.py代码如下
#-*- coding: UTF-8 -*-
from flask import Flask,render_template,request
from flask.ext.wtf import Form
from wtforms import TextField, BooleanField, TextAreaField
from wtforms.validators import Required, Length app = Flask(__name__) #CSRF_ENABLED 配置是为了激活 跨站点请求伪造 保护
app.config['CSRF_ENABLED']=True
app.config['SECRET_KEY']='xxx' #form表单类
class HelloForm(Form):
name = TextField('name',validators = [Required()])
greet=TextField('greet',validators=[Required()]) @app.route('/',methods=['GET','POST'])
def index():
#get方式提交,若url参数不为空,直接跳转到显示界面
name = request.args.get('name')
greet = request.args.get('greet')
if name!='' and name!=None and greet!='' and greet!=None:
greeting="%s,%s"%(name,greet)
return render_template('index.html',
title=u'显示信息',
greeting = greeting) #否则为post方式提交表单,跳转到输入信息界面
form = HelloForm()
if form.validate_on_submit():
greeting="%s,%s"%(form.name.data,form.greet.data)
return render_template('index.html',
title=u'显示信息',
greeting = greeting)
return render_template('hello_form.html',
title=u'输入信息',
form = form) app.run(debug=True)
6.上一步我们从 Flask 框架中导入一个名为 render_template 的新函数,在内部,render_template 调用了 Jinja2 模板引擎,Jinja2 会把模板参数提供的相应的值替换 {{...}} 块。
模板放在templates文件夹下.
mkdir templates
首先创建一个基础模板页 base.html
<html>
<head>
<title>{{title}}</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
输入信息页 hello_form.html
{% extends "base.html" %}
{% block content %}
<h1>Fill out this form</h1>
<form action="" method="POST">
{{form.hidden_tag()}}
A Greeting:
{{form.greet(size=30,maxlength=140)}}
<br/>
Your Name:
{{form.name(size=30,maxlength=140)}}
<br/>
<input type="submit">
</form>
{% endblock %}
显示信息页 index.html
{% extends "base.html" %}
{% block content %}
{%if greeting:%}
I just wanted to say <em style="color:green;font-size:2em;">{{greeting}}</em>
{%endif%}
{% endblock %}
7.运行:uniqueenv/bin/python app.py
注意运行的时候要使用虚拟目录中的python解释器

8.结果:
(1)Get方式

(2)Post方式


python--flask使用的更多相关文章
- AFNetworking+Python+Flask+pyOpenSSL构建iOS HTTPS客户端&服务器端
对于HTTPS我在网上找了一堆资料看了下, 各种协议和证书已经有点晕了 最后我现有的感觉是, 在HTTP服务器上放一个证书, 在原本的HTTP访问之前客户端先检查证书是否正确 如果客户端证书检查正确, ...
- python flask detect browser language
python flask detect browser language No problem. We won't show you that ad again. Why didn't you l ...
- Error generating Swagger server (Python Flask) from Swagger editor
1down votefavorite http://stackoverflow.com/questions/36416679/error-generating-swagger-server-pyt ...
- windows下python+flask环境配置详细图文教程
本帖是本人在安装配置python和flask环境时所用到的资源下载及相关的教程进行了整理罗列,来方便后面的人员,省去搜索的时间.如果你在安装配置是存在问题可留言给我. 首先罗列一下python+fla ...
- [Python][flask][flask-login]关于flask-login中各种API使用实例
本篇博文跟上一篇[Python][flask][flask-wtf]关于flask-wtf中API使用实例教程有莫大的关系. 简介:Flask-Login 为 Flask 提供了用户会话管理.它处理了 ...
- python+flask+mongodb+whoosh实现自己的搜索引擎(一):目录
python+flask+jieba+mongodb+whoosh实现自己的搜索引擎 一.目录 二.基于python的爬虫 三.网页去燥,URL去重 四.基于mongodb的数据存储 五.基于whoo ...
- 使用wfastcgi在IIS上部署Python Flask应用
本文介绍了如何在Windows上部署Python Flask应用,相关环境如下: 操作系统:windows 7 Python:3.4 WFastCGI: 2.2 应用所用到的包版本如下: Flask= ...
- 使用python+flask让你自己api(教程源代码)
1.背景 ok,这可能是很多朋友和我一样经常使用的各种api,例facebook的.github的.甚至微信api.因此,很多人都想使自己的api.在线教程在这方面它是非常小的,今天,我做了一个平稳, ...
- ubuntu下python flask环境搭建
ubuntu下python flask环境搭建 1. 安装pip sudo apt-get install python-dev pyhton-pip 2. 安装virtualenv sudo apt ...
- Taffy Web开发,Python Flask实践详解
1. 前言 最近为Taffy自动化测试框架写了个页面,主要实现了用例管理.执行,测试报告查看管理.发送邮件及配置等功能. 2. 实现细节 页面使用Python Flask +Bootstrap开发,还 ...
随机推荐
- objectARX 获取指定图层上所有实体ID
2015-12-17 //获取指定图层上所有实体ID AcDbObjectIdArray GetAllEntityId(const TCHAR* layername) { AcDbObjectIdAr ...
- EditText提示文字
如图,在没有输入文字前,会显示提醒文字. 引用的是文本文件(strings.xml)中的对应文字 activity_main.xml对应的红色代码: <?xml version="1. ...
- 2016-1-7第一个完整APP 私人通讯录的实现 5:保存数据
一:登陆界面 1):用户点击登陆按钮并成功登陆后,根据此时的开关情况选择是否保存数据,代码如下: "]) { [self performSegueWithIdentifier:@" ...
- 怎么在官网下载jstl【配图详解】
JSTL(JSP Standard Tag Library,JSP标准标签库)是一个非常优秀的开源JSP标签库,如果要在系统使用JSTL标签,则必须将jstl.jar和 standard.jar文件放 ...
- ubuntu文件夹右键没有共享选项
在配置samba的时候,不知道出了什么错误,我就删除了samba,之后在ubuntu文件上按右键就没有共享的选项了,这样每次配置都得进samba麻烦. 我重新安装了samba也不行,郁闷! 解决: 1 ...
- 关于python的一些笔记
Python源文件默认以UTF-8编码.在这种编码下,世界上大多数语言的字符可以在字符串,标识符和注释中同时使用 — 尽管标准库中的标识符只使用ASCII字符,它是可移植代码应该遵循的一个惯例.为了能 ...
- LeetCode Ugly Number (简单题)
题意: 判断是一个数的质因子仅含有2,3,5这3个. 思路: 因子2比较容易解决,num/=num-(num&num-1)就可以了.3和5的需要通过循环来另判. C++ class Solut ...
- DNS劫持和DNS污染解决办法
编号:1013时间:2016年5月26日09:35:27功能:DNS劫持和DNS污染解决办法URL : http://www.itechzero.com/dns-hijacking-dns-pollu ...
- CSS 实现:图片+文字的布局(综合)
☊[实现要求]:图片+文字+居中 √[实现]: ① img + 文字 <div class="demo2-1"> <img src="" al ...
- Tomcat9源码编译及导入Eclipse(转)
1.下载tomcat源码.建议下载最新版本tomcat9. svn地址:http://svn.apache.org/repos/asf/tomcat/tc9.0.x/branches/gsoc-jas ...