Flask
2015-11-30 19:13
281 查看
#environ:一个包含所有HTTP请求信息的dict对象 #start_response:一个发送HTTP响应的函数 def application(environ, start_response): method = environ['REQUEST_METHOD'] path = environ['PATH_INFO'] #if method=='GET' and path=='/': # return handle_home(environ, start_response) start_response('200 OK', [('Content-Type', 'text/html')]) #[1:] 切片 第2个字符到后面所有字符 body = '<h1>Hello, %s!</h1>' % (environ['PATH_INFO'][1:] or 'web') return [body.encode('utf-8')] #return [b'<h1>Hello, web!</h1>'] # 从wsgiref模块导入: from wsgiref.simple_server import make_server # 创建一个服务器,IP地址为空,端口是8000,处理函数是application: httpd = make_server('', 8000, application) print('Serving HTTP on port 8000...') # 开始监听HTTP请求: httpd.serve_forever()
from flask import Flask from flask import request app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def home(): return '<h1>Home</h1>' @app.route('/signin', methods=['GET']) def signin_form(): return '''<form action="/signin" method="post"> <p><input name="username"></p> <p><input name="password" type="password"></p> <p><button type="submit">Sign In</button></p> </form>''' @app.route('/signin', methods=['POST']) def signin(): # 需要从request对象读取表单内容: if request.form['username']=='admin' and request.form['password']=='password': return '<h3>Hello, admin!</h3>' return '<h3>Bad username or password.</h3>' if __name__ == '__main__': app.run()
from flask import Flask, request, render_template app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def home(): return render_template('home.html') @app.route('/signin', methods=['GET']) def signin_form(): return render_template('form.html') @app.route('/signin', methods=['POST']) def signin(): username = request.form['username'] password = request.form['password'] if username=='admin' and password=='password': return render_template('signin-ok.html', username=username) return render_template('form.html', message='Bad username or password', username=username) if __name__ == '__main__': app.run()
需要templates目录
相关文章推荐
- 如何分文件编写Boost Test的test case
- Ubuntu下LAMP的环境配置教程
- BGP劫持详解
- xilinx 的 LogiCORE IP Video In to AXI4-Stream 调试
- 黑马程序员——C语言循环、switch与if语句笔记和习题
- static、const和static const的区别
- 南大软院大神养成计划第七天
- sky杭电2097
- 斐波拉契数列
- Ubuntu 14.04下OpenCV 3.0+Python 2.7安装测试
- 创新工场-涂鸦移动 面经
- 实体Bean
- Core Data入门
- 全功能智能车之完善电路图(第十七篇)
- 嵌入式Linux-objdump命令的使用
- JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)
- 杭电2099
- Bellman-ford存在负权的单元点最短路径
- Java: byte short 如何正确异或!
- 正则表达式