一.第一个hello world程序

# coding=utf-8
from flask import Flask app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World!' if __name__ == '__main__':
app.run(debug=True)

1.app参数的设置:

以下几种方式全部拿debug模式举例:
.方式一:将参数设置到app.config字典中:

app.config["DEBUG"] = True

.方式二:加载文件:  
  1. 先在根目录下创建一个config.py文件,然后写入DEBUG = True 
  2. 然后在含有app文件中设置参数:

app.config.from_pyfile("config.py")

.方式三:加载对象(实际开发中一般用这个):  
  1. 先在根目录下创建一个config.py文件,然后写入如下代码:

class Config(object):
DEBUG = True

  2. 在app文件中导入config文件中的Config类。  
  3. 然后设置:

app.config.from_object("Config")

.方式四:app的属性

app.debug = True

也可以 

app.run(debug=True)

但是这种方式不同用,只是针对debug模式可以这样设置。 

2.取app.config参数中的值:

 1)app.config.get("DEBUG")

2)current_app.config.get("DEBUG")

3)Config.DEBUG

二.路由的各种定义方式

1.路由的查找方式:

2.flask中内置的路由转换器(路由传参的几种形式)

a.系统默认的类型default就是string类型,也就是说进行路由的参数匹配的时候,系统默认会将参数当作string类型进行匹配。下面举例说明:

 @app.route('/<str>')
def print_str(str):
print type(str)    # 结果为:<type 'unicode'>
return str @app.route('/<string:str>')
def print_str1(str):
print type(str)    # 结果为:<type 'unicode'>
10   return str
 @app.route('/<any(hello,python,java,"javascript:;"):str>')
def print_any(str): # 只能匹配括号里面的数据,并且引号里面的数据可以随意写
print type(str)
return str @app.route('/<path:str>') # http://localhost:5000/path/str
def print_path(str):
print type(str)
return str # 结果为:path/str @app.route('/<int:str>') # 页面传过来的数据(字符串类型)在这里直接转换为int类型
def print_int(str):
print type(str) # <type 'int'>
return str(str) # 此时将数据返回给页面的时候必须转换为字符串类型 @app.route('/<float:str>') # 只有当页面传递过来的是小数float转换器才起作用
def print_float1(str):
print type(str) # <type 'float'>
return str(str)

b.     uuid是32位16进制的数字。

3.路由的重定向

  1)重定向的方法是redirect()常常和url_for一起使用。比如:redirect(url_for(“视图函数的方法名”))

4.返回Json数据的两种方法:

  1)json.dumps("字典")

  2)jsonify("字典")

第一种方法仅仅是将字典转换为字符串返回给页面,响应头的Content-Type为text/html。

第二种方法是将字典转换为json返回给页面,响应头的Content-Type为application/json。这是开发中比较常用的方法。

现在的需求是用第一种方法还要达到第二种方法的效果,代码为:

return json.dumps(“字典”), , {'Content-Type': 'application/json'}

5.自定义正则路由转换器

  1)导入包

from werkzeug.routing import BaseConverter

  2)仿照BaseConverter自定义一个类

class RegexConverter(BaseConverter):
def __init__(self,url_map,*args):
super(RegexConverter,self).__init__(url_map)
self.regex = args[]

  3)将自定义的类添加到路由转换器的字典中

app.url_map.converters["re"] = RegexConverter  # 这句话相当于将自己定义的类用re来表示

  4)将正则路由转换器应用到实例中

@app.route('/<re(r"\d{2}"):str>')  # 只能匹配两位数字  re(“正则”) ===>  相当于执行了RegexConverter中的init方法,将正则赋值给self.regex
def print_str(str):
return str

python框架之Flask基础篇(一)的更多相关文章

  1. python框架之Flask基础篇(二)-------- 数据库的操作

    1.flask连接数据库的四步: 倒入第三方数据库扩展包:from flask_sqlalchemy import SQLAlchemy 配置config属性,连接数据库: app.config[&q ...

  2. python框架之Flask基础篇(三)-------- 模版的操作

    1.flask特有的变量和函数: 变量:g.session.request.config 函数:url_for().get_flashed_messages()这个函数注意了啊,记住这是个函数,别忘了 ...

  3. python框架之Flask基础篇(四)-------- 其他操作

    1.蓝图 要用蓝图管理项目,需要导入的包是:from flask import Buleprint 具体大致分为三步: 1.先在子模块中导入蓝图包,然后再创建蓝图对象. 2.然后将子模块中的视图函数存 ...

  4. Python学习笔记之基础篇(-)python介绍与安装

    Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...

  5. 智普教育Python视频教程之入门基础篇,python笔记

    智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostna ...

  6. Python(三)基础篇之「模块&面向对象编程」

    [笔记]Python(三)基础篇之「模块&面向对象编程」 2016-12-07 ZOE    编程之魅  Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...

  7. Python(四)基础篇之「文件对象&错误处理」

    [笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE    编程之魅  Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...

  8. 第一篇 Flask基础篇之(配置文件,路由系统,模板,请求响应,session&cookie)

    Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后 ...

  9. python框架之Flask

    介绍:Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . WSGl:Web Server Gateway ...

随机推荐

  1. NEU 1351 Goagain and xiaodao's romantic story I

    题目描述 Do you know goagain? If the answer is “no”, well, you can leave NEUACM. Goagain is the most per ...

  2. codevs——1517 求一次函数解析式

    1517 求一次函数解析式  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 相信大家都做过练习册上的这种 ...

  3. SQL Server 2012内部原理及故障排除

    http://blog.csdn.net/burgess_liu/article/details/37900027

  4. cocos2d-x大版本号3.1系列一

    本人博客,欢迎转载:http://blog.csdn.net/dawn_moon 项目忙完了.继续写我的博客.去cocos2d-x的官网看了下,不出所料.又有惊喜啊.3.0经过几个版本号的迭代,最终迎 ...

  5. ci output

    ci output类可以将数据存起来,下面这个方法 a 代表的就是存起来的数据 public function(){ $data = array( 'name'=>'alice', ); $th ...

  6. 从尾到头打印链表——剑指Offer

    https://www.nowcoder.net/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tqId=11156&tPage= ...

  7. 1. 找出数组中的单身狗OddOccurrencesInArray Find value that occurs in odd number of elements.

    找出数组中的单身狗: 1. OddOccurrencesInArray Find value that occurs in odd number of elements. A non-empty ze ...

  8. 【ora10,4】oracle后台进程介绍:

    一.SMON(System MONitor) 系统监控进程:      在数据库启动过程中,SMON排在CKPT进程之后,在Oracle9i中排在第六号的位置: PMON started with p ...

  9. 使用Tomcat的一些经验和心得

    如今将使用Tomcat的一些经验和心得写到这里.作为记录和备忘.假设有朋友看到,也请指教. 1.首先是Tomcat的获取和安装. 获取当然得上Apache的官方站点下载,开源免费.并且带宽也足够.下载 ...

  10. 面向对象设计:共性VS个性-------继承的粒度和聚合的粒度以及类的重构

    共性和个性 依据面向对象的原理.类是对象的抽象.也就是说.类是一系列的既有共性又有个性的对象的高度概括,类的属性和方法代表了隶属于该类的全部对象的共性,类的每一个对象实例都能够有不同的属性值,这反映了 ...