Flask---第一个例子--使用Flask写的【Hello World !】的web程序
from flask import Flask;------->引入Flask插件,pip install Flask; app=Flask(__name__) #变量app是Flask的一个实例并且必须传入一个参数,__name__对应的值是__main,即当前的py文件的文件名作为Flask的程序名称,这个也可以自定义,比如,取,'MY_ZHH_APP'
#__name__是固定写法,主要是方便flask框架去寻找资源 ,也方便flask插件出现错误时,去定位问题
 @app.route('/')      #相当于一个装饰器,视图映射,路由系统生成 视图对应url,这边没有指定method .默认使用get
 def first_flask():    #视图函数
     return 'Hello World'  #response,最终给浏览器返回的内容
 if __name__ == '__main__':
     app.run(debug=True)              #启动这个应用服务器,并开启debug,才能定位问题
运行结果:

终端中显示:

运行过程及原理:
*当客户端访问/时,将响应hello_world()函数返回的内容。
*同理如果route('/index'),那么就是客户端访问'/index'时,将相应hello_world()函数返回的内容
*app.run()当时运行,若是服务端出问题,那么是不会在客户端展示的,但是在调试过程中,显示这个错误是有必要的,因此要加上:app.run(debug=True);
*默认情况下,Flask绑定的IP和端口分别为:127.0.0.1、5000,但实际我们可以自定义绑定,如0.0.0.0代表的是电脑的所有IP,端口80是HTTP的默认端口------------木有成功啊,为什么
app.run(host='0.0.0.0',port=8089,debug=True);
注意,这不是返回Hello World!这么简单,Hello World!只是HTTP响应报文的实体部分,状态码等信息既可以由Flask自动处理,也可以通过编程来制定。
1、URL的参数
*以键值对存储,比如要查看当前URL的参数,列出URL的所有参数
 @app.route('/index')
 def first_flask():    #视图函数
     return request.args.__str__()  #返回'/index'URL的所有参数
运行结果(参数是空的):

如果在地址后加上问号和参数,即可得到参数的键值对

2、浏览器传给Flask服务器的数据长什么样子(即每次在浏览器刷新一次,Flask都会接受浏览器给的数据)
@app.route('/index')
def first_flask():
    print(request.path);------>运行结果:【/index】
    print(request.full_path);----------运行结果:【index?】
    return request.args.__str__()  #response

3、获取URL的某个指定的参数
 @app.route('/index')
 def first_flask():
     return request.args.get('info')----->最终reponse返回,url中info参数的值
运行结果:
*注意若URL后的参数中没有info值,那么最终执行会报错(TypeError),正常python会返回None,但是Flask不允许返回None
*解决办法1:在打印出来前判断是否存在,或是否为None
*解决办法2:r=request.args.get('info','我是代替的默认值');,判断info是否存在,如果不存在,那么,打印第二个默认值
V V V V
     r=request.args.get('info');
     if r==None:
         return '不存在';
     else:
         return r;


3、获取URL的多个参数(getlist)
@app.route('/index')
def first_flask():
    r=request.args.getlist('info');
    if r==None:
        return '不存在';
    else:
        return str(r);------->注意最后返回的是列表类型,必现将类型转换成str,否则会报TypeError错误

4、url_for(反转url:主要处理页面重定向,URL的获取),要导入url_for
 @app.route('/index')
 def index():
     print(url_for('my_layout',username='aaa'));------>url_for的第一个参数是视图方法名,比如my_layout,hello_world,
     print(url_for('hello_world',username='bbb'));----->第二个参数是参数,如有没有可以不写,如有有参数,必须要写(有几个写几个),<参数名>='给值'
     return 'index';
 #layOut.html
 @app.route('/hello/<username>')
 def hello_world(username):
     return render_template('hello.html',username=username);
 @app.route('/layout/<username>')
 def my_layout(username):
     return render_template('jicheng.html',username=username);
最终看运行结果,可以看到打印出该视图方法的URL地址

4、url_for的页面重定向小例子
@app.route('/hello/<username>')
def hello_world(username):
    return render_template('hello.html',username=username);
@app.route('/layout/<username>')
def my_layout(username):
    return render_template('jicheng.html',username=username);
@app.route('/login/<is_login>')
def login(is_login):
    if is_login==1:------------------------>判断is_login是否等于1,如果是,则跳转到【my_layout】视图所对应的页面
        return redirect(url_for('my_layout',username=is_login));
    else:
        return redirect(url_for('hello_world',username='你还没登陆呢,请先登陆'))----------如果不是,则跳转到【hello_world】视图所对应的页面
if __name__ == '__main__':
    app.run(debug=True);
Flask---第一个例子--使用Flask写的【Hello World !】的web程序的更多相关文章
- flask的第一个例子
		对django有了一些基础了解,现在看看flask,然后如果有时间可以看看 web.py 那么咱们开始flask的第一个例子 先安装flask pip install flask 看官方的教程 我也把 ... 
- Flask最强攻略 - 跟DragonFire学Flask - 第一篇 你好,我叫Flask
		首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 一. Python 现阶段三大主流Web框 ... 
- Flask - 第一篇
		首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 一. Python 现阶段三大主流Web框 ... 
- 例子: 自制Flask首页导航.
		# -*- coding:utf-8 -*- ''' Created on 2015年10月19日 ''' from flask import Flask, render_template impor ... 
- 创建我的flask第一个应用(二)
		继上一篇创建我的flask第一个应用(一),继续学习配置flask 在myproject未提供flask默认运行的主程序文件"wsgi.py"或"app.py" ... 
- flask第一章 flask启动 路由视图 FlaskRequest jinja2 FlaskSession
		一.简单了解flask web框架 优点: 小而精,组件只有session,第三方机构强烈支持flask,极其简单 缺点: 由于第三方软件的关系,稳定性相对较差,flask-session 扩展知识: ... 
- Flask第一篇
		一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不 ... 
- Flask从入门到精通之flask程序入门
		初始化 所有Flask程序都必须创建一个程序实例,Web服务器使用一种名为Web服务器网关接口的的协议(WSGI),把接收自客户端的所有请求转发给这个对象处理.程序实例是Flask类的对象,使用下面代 ... 
- flask tutorial => make a blog :) flask 搭建博客系统从零开始!
		please follow the tutorial from the official site :) http://flask.pocoo.org/docs/ You could download ... 
随机推荐
- Java对数
			java对数 先看看Java源码里的对数函数(在Java.lang.Math里) 方法1:log() 作用:返回以自然常数e为底数的对数值 说明: e ≍ 2.71828 18284 59045 23 ... 
- LuoGu P1939 【模板】矩阵加速(数列)
			板子传送门 矩阵快速幂学完当然要去搞一搞矩阵加速啦 (矩阵加速相对于矩阵快速幂来说就是多了一个构造矩阵的过程) 关于怎样来构造矩阵,这位大佬讲的很好呢 构造出矩阵之后,我们再去用矩阵快速幂乘出来,取[ ... 
- 注册InstallShield
			安装InstallShield 下载installshield limitededition版本,这个版本是免费的 注册 安装打开后会给一个网址要求进行注册 其中,国籍是必填项但是下拉菜单中没有内容, ... 
- easyui生成合并行,合计计算价格
			easyui生成合并行,合计计算价格 注:本文来源: 原创 一:图样你效果图 二:代码实现 1:datagrid 列展示: window.dataGrid = $("#dataGrid&qu ... 
- mvc  模式和mtc 模式的区别
			首先说说Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务对象与数据库的映射( ... 
- select下拉框的数据回显
			需求描述:select框,下拉后又很多的选项,选择一个,根绝后台代码做查询,完成之后,页面上的select框还是之前选的那个值 解决思路:select本质就是 value和text一一对应,根据你的s ... 
- jsp 修饰 Request 及Response
			Servlet API包含4个可修饰的类,用于改变Servlet Request以及Servlet Response.这种修饰允许修改 ServletRequest以及ServletResponse或 ... 
- Java 写一段字符到指定的文本文档中,如果该文本文档不存在,则创建该文本文档
			写一段字符到指定的文本文档中,如果该文本文档不存在,则创建该文本文档 import java.io.File; import java.io.FileNotFoundException; import ... 
- jmeter 控制线程组执行顺序
			这个要配合全局变量.if和while来实现BeanShell取样器,全局变量:${__setProperty(newswitch,${switch1},)}if条件:"${__P(newsw ... 
- MySQL查看库表的大小
			MySQL数据库空间使用情况查询 如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表, ... 
