python flask api 统计_Flask Python API初探

这篇博客介绍了Flask,一个轻量级的Python Web框架。通过几个简单的代码示例,展示了如何创建路由、使用render_template进行页面渲染以及基本的样式设定。适合初学者入门Flask API开发。
摘要由CSDN通过智能技术生成

一、简介

Flask是一个用于开发网页App的轻量级框架,功能类似Django,但是比Django要简洁很多(省去了大量模板化的代码)。此外,由于Flask比较新,其开发过程中广泛吸取了社区的支持和意见,故语法方面比较Pythonic。一句话介绍如下:

"Flask is a lightweight Python framework for web applications that provides the basics for URL routing and page rendering."

二、Hello World

以下通过四个小代码段了解下flask的基本运作及语法。

2.1 Hello world

插入下面代码,命名为app.py。

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello_world():

return "Hello World"

if __name__ == "__main__":

app.run('0.0.0.0', '8000')

可以看出flask语法主要是基于python的装饰器实现的。注意当使用python app.py执行该脚本时,变量name的值为"main"。

该装饰器看起来只是将函数的返回值重定向到装饰器修饰路径对应的页面下了。由于函数的功能比较简单,暂时还看不出其他内容。

Fig. 1 demo1结果

2.2 app.route

下面这段代码了解下修饰器app.route()传递的参数:

from flask import Flask

app = Flask(__name__)

@app.route("/") # 网站根目录(默认为localhost:5000)

def index():

return "Index!"

@app.route("/hello")

def hello():

return "Hello World!"

@app.route("/members")

def members():

return "Members"

@app.route("/members//") # 该路径支持一个名字作为参数

def getMember(name):

return name # 在该网址print出名字

if __name__ == "__main__":

app.run()

然后可以运行脚本,分别输入

"localhost:5000/hello",

"localhost:5000/members",

"localhost:5000/hello/chiyuan"

可以看到页面中显示出了对应的结果:

Fig. 2 demo2结果

此时观察下脚本执行对应的输出:注意最下面当输入了没有设置的网址,会显示访问结果404.

Fig. 3 flask脚本执行输出

2.3 render

这里我们使用下简单的render_template。首先创建一个templates文件夹,在下面创建一个test.html,插入下面一行代码:

Hello {{ name }}!

然后修改app.py:

from flask import Flask, flash, redirect, render_template, request, session, abort

app = Flask(__name__)

@app.route("/")

def index():

return "Flask App!"

@app.route("/hello//")

def hello(name):

return render_template(

'test.html',name=name) #将字符串传入html中

if __name__ == "__main__":

app.run(host='0.0.0.0', port=80)

这里使用了一个最简单的template,即一级标题,效果如下图:

Fig. 4 demo4_render效果

2.4 Style

这部分使用预定的模板对页面进行渲染。不过其中模板的语法还不是很了解,等需要用的时候可以从这个入手。看起来可以通过extend关键字将多个html template组合起来,比如这里先创建两个templates文件夹下的文件,test.html和layout.html:

{% extends "layout.html" %}

{% block body %}

Hello {{ name }}!

Here is an interesting quote for you:

"The limits of my language are the limits of my mind. All I know is what I have words for."

{% endblock %}

下面为layout.html的内容:

Website

@import url(http://fonts.googleapis.com/css?family=Amatic+SC:700);

body{

text-align: center;

}

h1{

font-family: 'Amatic SC', cursive;

font-weight: normal;

color: #8ac640;

font-size: 2.5em;

}

{% block body %}{% endblock %}

然后刷新localhost网站,效果如下:

Fig. 5 demo4_styling效果

不知道为啥,好像有一些语法没有compile正确..回头再了解了解..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值