Python Flask框架建立项目

Python Flask框架建立项目

  • ECharts实现全国空气质量查询
  • Python Flask框架建立项目
      Flask项目建立
      Flask项目编程
  • Python 爬虫爬取空气质量数据
  • Echarts实现空气质量查询网页
  • 全国空气质量查询程序说明和下载

Flask项目建立

  我使用的IDE是pycharm2020 专业版。

  1、打开pycharm新建项目。点击“文件”->“新建项目”->“Flask”,然后输入保存目录。在这里选择编译环境,我使用的是Python 3.7(可以根据的实际情况选择),下面的“More Settings”默认就好。

Python Flask框架建立项目_第1张图片

  2、创建的项目如下所示。

Python Flask框架建立项目_第2张图片

  3、对于其它版本的pycharm可能没有Flask的快捷创建方式,我们可以自己创建,其实“static”和“templates”是两个空的文件目录。我们可以直接创建一个python项目。

Python Flask框架建立项目_第3张图片

  创建后的项目结构是空的,如下所示。

Python Flask框架建立项目_第4张图片

  我们点击项目,新建一个Python File,命名为app.py,然后建立两个“目录”,分别命名为“static”、“templates”即可,此时两个目录都是空的。

  在新建的“app.py”中复制之前一样的代码,然后运行项目,可以看见我们的项目已经启动,点击或者在网页输入“http://127.0.0.1:5000/”,即可打开网页。

Python Flask框架建立项目_第5张图片
from flask import Flask

app = Flask(__name__)		# 配置


@app.route('/')				# 路由地址
def hello_world():			# 响应函数
    return 'Hello World!'


if __name__ == '__main__':	# 主函数
    app.run()

  网页展示的内容为“Hello World!”。

Python Flask框架建立项目_第6张图片

  至此,我们flask框架的建立便完成了。

书接上文。按照我们新建flask的框架,添加我们的代码。

Flask项目编程

  1、基本的配置

from flask import Flask, request, render_template,jsonify

# 配置设置
app = Flask(__name__)
app.config['DEBUG']= True                                       # DEBUG模式
app.config['SEND_FILE_MAX_AGE_DEFAULT']= timedelta(seconds=1)   # 默认缓存控制的最大期限,以秒计

if __name__ == '__main__':
    app.run(debug=True)

  2、设置展示网页的路由和对应的函数。这里我们设置了两个路由展示我们的两个网页,这两个网页的文件是保存在“templates”目录下。

# 城市空气质量查询
@app.route('/visual_histroy',methods=['post','get'])    # 路由地址、请求的方式包括“post”和“get”
def get_histroy():
    return render_template("histroy_time.html")         # 展示网页

# 全国空气质量查询
@app.route('/visual_current',methods=['post','get'])
def get_current():
    return render_template("current_time.html")

  3、设置其它的路由和对应的函数用于前后端进行数据交互。对于每个路由我们都接受“post”和“get”请求方式,其中一些路由把“get”请求返回默认数据。
  前端向后端传输的数据我们通过“request”对象可以获取;根据“request”对象的数据我们可以获取相应的数据,并返回给前端;后端向前端传输的数据我们通过"flask"里的“jsonify”,转换为json格式传输。

from datetime import timedelta
from base_fun import get_now_time,read_data
from web_data import Histroy_data,pm25_86
# 以上函数是自己写的

# 获取城市空气质量查询的数据更新响应
@app.route('/data',methods=['post','get'])
def get_cur_data():
    if request.method == "POST":
        return_dict = Histroy_data(request.values.get('city'), request.values.get('time'))		# 根据城市和时间,获取相应的数据
        return jsonify(return_dict)						# 返回数据
    else:
        return_dict = Histroy_data("北京","2021年01月")	# 默认读取北京,2021年01月的数据
        return jsonify(return_dict)
        
# 获取地图json文件内容的响应
@app.route('/geo_map',methods=['post','get'])
def get_map():
    province_name = request.values.get('province_name')			# 读取地图
    print("获取地图:",province_name)
    filename = "./static/js/province/"+province_name+".json"	# 文件地址,文件是json格式
    return_dict = read_data(filename)							# 读取地图文件数据
    return jsonify(return_dict)
    
# 获取全国空气质量查询的数据更新响应
@app.route('/data_country',methods=['post','get'])
def get_country_data():
    if request.method == "POST":
        return_dict = pm25_86(request.values.get('province_name'))
        if return_dict:
            print("获取到数据:",return_dict)
            return jsonify(return_dict)
        else:
            return None
    else:
        return_dict = pm25_86('全国')
        if return_dict:
            print("获取到数据:", return_dict)
            return jsonify(return_dict)
        else:
            return None
            
# 实时时间的更新
@app.route('/time',methods=['post','get'])
def get_time():
    if request.values.get('name') == '现在':
        return get_now_time()

  以上为flask框架里面有关路由的设置,接下来分别把flask调用的一些方法,和前端进行实现即可。

你可能感兴趣的:(python,flask,python)