python框架之Flask基础篇(一)

一.第一个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类型进行匹配。下面举例说明:

 1 @app.route(‘/<str>‘)
 2 def print_str(str):
 3     print type(str)    # 结果为:<type ‘unicode‘>
 4     return str
 5
 6
 7 @app.route(‘/<string:str>‘)
 8 def print_str1(str):
 9     print type(str)    # 结果为:<type ‘unicode‘> 10   return str
 1 @app.route(‘/<any(hello,python,java,"javascript:;"):str>‘)
 2 def print_any(str):   # 只能匹配括号里面的数据,并且引号里面的数据可以随意写
 3     print type(str)
 4     return str
 5
 6
 7 @app.route(‘/<path:str>‘)     # http://localhost:5000/path/str
 8 def print_path(str):
 9     print type(str)
10     return str    # 结果为:path/str
11
12
13 @app.route(‘/<int:str>‘)    # 页面传过来的数据(字符串类型)在这里直接转换为int类型
14 def print_int(str):
15     print type(str)    # <type ‘int‘>
16     return str(str)     # 此时将数据返回给页面的时候必须转换为字符串类型
17
18 @app.route(‘/<float:str>‘)  # 只有当页面传递过来的是小数float转换器才起作用
19 def print_float1(str):
20     print type(str)    # <type ‘float‘>
21     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(“字典”), 200, {‘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[0]

  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

原文地址:https://www.cnblogs.com/RomanticLife/p/8362022.html

时间: 2024-08-29 04:14:08

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

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

1.flask连接数据库的四步: 倒入第三方数据库扩展包:from flask_sqlalchemy import SQLAlchemy 配置config属性,连接数据库: app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:[email protected]/first_flask"app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False 创

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

1.蓝图 要用蓝图管理项目,需要导入的包是:from flask import Buleprint 具体大致分为三步: 1.先在子模块中导入蓝图包,然后再创建蓝图对象. 2.然后将子模块中的视图函数存储在蓝图对象中. 3.最后在主模块的文件夹里注册蓝图. 下面分别展示以上三步在项目中的具体操作: 第一步: 第二步: 第三步: 在子模块中运用模版:需要两步. 第一: 先要在pycharm中设置一下: 第二: 然后需要在创建蓝图对象的时候需要手动加上下面这句话: 前面那句话的意思是给url加上一个前

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

智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostname="www.google.com" 结果运行后总是告诉我NameError: name 'socket' is not defined 哪位帮我分析一下,怎么改才对 没用过socket,不过你试着在第一行加入 import socket C:\>notepad somefile.

【新手学Python】一、基础篇

由于以前处理数据用Matlab和C,最近要处理大量文本文件,用C写实在是太繁琐,鉴于Python的强大文本处理能力,以及其在Deep Learning上有着很大优势,本人打算从即日起学习Python,谨以此系列博客记录学习点滴.文中如有错误,还望大牛们指出! Section 1: 本文是第一篇,当然也是基础,有了编程基础的我们都知道,学习一门语言什么最重要?当然先搞清楚数据类型和数据结构,有了这些,你才能去谈面向对象,才能去设计程序. Python的数据类型比较简单:1.整数;2.长整数;3.浮

Python面试重点(基础篇)

Python面试重点(基础篇) 第一部分 必答题 简述列举了解的编程语言及语言间的区别? pythonjavacc++c#gophp----------------------------------------------------------------编程语言分为解释型和编译型: 解释型语言:   python 在编写代码的时候不需要编译,在执行的时候,想要用专用的解释器对代码进行编译,全部编译后,才能执行代码 编译型语言:   c c++   go 每写一行代码,解释器就会编译一行,然

python study to 4 基础篇

基础篇 内置函数 补充内置函数: 1.callable() #判断(函数)是否能够被执行或者被调用,此函数返回值为 Ture or False def f1(): pass print(callable(f1)) 2.chr() #把数字转换成ASCII字符 print(chr(65)) 3.ord() #把ASCII字符串转换成对应的数字 print (ord(",")) 4.randrange() #需要导入 import random模块,此函数产生随机数 I=Import ra

Python学习之旅 —— 基础篇(四)内置函数、装饰器

本篇要点: 内置函数 装饰器 一.内置函数 # abs() :取绝对值 >>> res = abs(-10) >>> print(res) 10 # 0,None,"",{},[],() 布尔值都为空 # all(),any() 判断值的真假 # all() 所有为真才为真 p = all([0,1,2,3]) # 0为False,所有p 是False print(p) # any() 任意一个为真即为真 p = any((0,""

Python:Django【基础篇】

Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver 0.0.0.0 python manage.py st

python study to 1 基础篇

第一章 PYthon 简介 Python的创始人为吉多.范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多.范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.之所以选中Python作为程序的名字,是因为他是BBC电视剧——蒙提.派森的飞行马戏团(Monty Python's Flying Circus)的爱好者.ABC是由吉多参加设计的一种教学语言.就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的.但是ABC