Python使用Flask模块创建本地服务器

Flask是一个使用 Python 编写的轻量级 Web 应用框架。Flask和Django是Python中最流行的web开发框架,与Django不同的是,Flask适合开发小型项目,通过服务器提供服务,而Django适合用来开发大型web项目。

使用Flask搭建服务器,通过浏览器访问来使用Python功能,Python+Flask搭建服务器代码量少,实现起来相当简单,下面通过demo来介绍如何实现。

一、安装Flask包

Python安装包安装有两种方式,第一种是通过python自带的pip包管理器进行安装,另一种是如果使用pycharm编辑器开发,那么可以通过pycharm的包管理器进行安装包,需要注意的是两种方式安装的包路径不同,pip安装的包在python解释器安装目录下,这里可以理解为python公共包,pycharm包管理器安装的在pycharm项目里面,可以理解为项目私有的包。

1.命令行安装

快捷键Win+R,输入cmd运行,输入pip install flask进行安装。

2.pycharm安装

File | Settings | Project: pythonFlask | Python Interpreter

二、创建Flask服务器

首先加载Flask框架模块和render_template模板渲染模块,然后创建Flask服务,定义URL执行的方法,最后启动Flask服务即可。

完整案例:

# 加载Flask框架主模块和render_template模板渲染模块
from flask import Flask, render_template
# 创建Flask服务
app = Flask(__name__)

# 访问URL:http://127.0.0.1:8080
# 返回网页index.html
@app.route('/')
def index():
    data = {
        "msg": "success",
        "data": "welcome to use flask."
    }
    return render_template('index.html', **data)

# 访问URL:http://127.0.0.1:8080/home/hello
# 返回结果:{"data":"welcome to use flask.","msg":"hello"}
@app.route('/home/')
def home(name):
    return {
        "msg": name,
        "data": "welcome to use flask."
    }

if __name__ == "__main__":
    # 启动Flask服务,指定主机IP和端口
    app.run(host='127.0.0.1', port=8080)

三、模板渲染

Flask框架渲染是通过render_template模块实现,渲染模板前首先在py工程根目录下创建templates目录,并在该目录下创建html模板文件。

(一)创建HTML模板

在templates目录下创建index.html文件,代码如下

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flask template demotitle>
head>
<body>
    <h1>This is flask app templateh1>
    <div>{{msg}}div>
    <div>{{data}}div>
body>
html>

其中模板使用{{name}}作为标签,Flask渲染模板是自动输出对应的数值。

(二)渲染HTML网页

py文件添加如下方法

# 访问URL:http://127.0.0.1:8080
# 返回网页index.html
@app.route('/')
def index():
    data = {
        "msg": "success",
        "data": "welcome to use flask."
    }
    return render_template('index.html', **data)

其中index.html为模板,**data为字典,通过render_template()函数把数据传递到模板中输出。

(三)输出模板

浏览器访问http://127.0.0.1:8080,即可输出index.html
Python使用Flask模块创建本地服务器_第1张图片

你可能感兴趣的:(Python,python,flask,服务器)