python--flask使用
2016-03-29 13:47
656 查看
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代码如下
6.上一步我们从 Flask 框架中导入一个名为 render_template 的新函数,在内部,render_template 调用了 Jinja2 模板引擎,Jinja2 会把模板参数提供的相应的值替换 {{...}} 块。
模板放在templates文件夹下.
mkdir templates
首先创建一个基础模板页 base.html
输入信息页 hello_form.html
显示信息页 index.html
7.运行:uniqueenv/bin/python app.py
注意运行的时候要使用虚拟目录中的python解释器
8.结果:
(1)Get方式
(2)Post方式
下面我将使用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的学习.
- selenium-python自动化测试第一天
- 【转载】关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型
- 学习Python,学习Pygame(二)
- Python 脚本无法使用IDLE's subprocess didn't make connection
- python语言简介、解释器、字符编码介绍
- Python之ftplib模块
- 2016.03.31,知数堂在线分享《魅力Python》
- 04-Python基本语法
- 03-第一个Python程序
- python学习笔记-Day20 -第一部分
- Python logging模块详解
- selenium-python安装
- Python之'\r'
- 【python】list。列表
- Python使用taskkill 报错 系统找不到指定的路径
- 关于迅速上手Pychart的简单介绍
- 【Python】装饰器实现日志记录
- python调用父目录的模块
- numpy 基础 —— np.linalg