文章目录
一、flask简介
WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
如果想自己实现数据挖掘算法的话,可以参考weka的接口文档。在weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。
二、第一个flask程序
111
# -*- coding:utf-8 -*-
# 1.导入Flask扩展
from flask import Flask
# 2.创建Flask应用程序实例
# 需要传入__name__,作用是为了确定资源所在的路径
app=Flask(__name__)
# 3.定义路由及视图函数
# flask中定义路由是通过装饰器实现的
@app.route('/')
def index():
return "hello world"
# 4.启动程序
if __name__ == '__main__':
#执行了app.run,就会将flask程序运行在一个简易的服务器上(flask提供的,用于测试的)
app.run()
执行后点击生成的网页,就可以看到"hello world"的字样。
Flask调用视图函数后,可以返回两种内容:
- 字符串内容:将视图函数的返回值作为响应的内容,返回给客户端(浏览器)
- HTML模版内容:获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后返回响应数据给客户端(浏览器)
比如新建一个flask文件夹后,在template文件夹中新建一个html文件,命名为index,并在中输入<h1>HW<h1>字样,并将上文的第四行改成"from flask import Flask,render_template",第14行替换为"return render_template(“index.html”)",则返回的是html模板,打开后为模板的HW字样。
三、路由相关
1. 路由请求方式的限定
为了验证和演示调试结果,引入接口测试软件Postman。
- Postman下载安装地址:https://www.postman.com/downloads/
- Postman是一个接口测试工具,不仅可以调试简单的css、html、脚本等简单的网页基本信息,Postman还可以发送几乎所有类型的HTTP请求!Postman简化了API生命周期的每个步骤并简化了协作。
在methods处对路由进行选择,相应的可在Postman中调试。
# -*- coding:utf-8 -*-
# 1.导入Flask扩展
# -*- coding:utf-8 -*-
# 1.导入Flask扩展
from flask import Flask,render_template
# 2.创建Flask应用程序实例
# 需要传入__name__,作用是为了确定资源所在的路径
app=Flask(__name__)
# 3.定义路由及视图函数
# flask中定义路由是通过装饰器实现的
# 路由默认只支持GET,如果需要增加,需要自行指定
@app.route('/',methods=['GET','POST'])
def index():
return "hello world"
# return render_template("index.html")
# 4.启动程序
if __name__ == '__main__':
#执行了app.run,就会将flask程序运行在一个简易的服务器上(flask提供的,用于测试的)
app.run()
2. 路由参数处理
在生成的网址后加上/orders/xxx(xxx可为数字,可为字母),打开的网页会出现"order_id xxx"字样。
访问优化:如果想对xxx进行整数类型限定,在<>内加上“int:”。
# -*- coding:utf-8 -*-
# 1.导入Flask扩展
from flask import Flask,render_template
# 2.创建Flask应用程序实例
# 需要传入__name__,作用是为了确定资源所在的路径
app=Flask(__name__)
# 3.定义路由及视图函数
# flask中定义路由是通过装饰器实现的
# 路由默认只支持GET,如果需要增加,需要自行指定
@app.route('/',methods=['GET','POST'])
def index():
return "hello world"
# return render_template("index.html")
# 使用同一个视图函数来显示不同用户的订单信息
# <>定义路由的参数,<>内需要起个名字
@app.route('/orders/<order_id>')
def get_order_id(order_id):
#参数类型,默认是字符串,unicode编码
print type(order_id)
# 需要在视图函数的()内填入参数名,后面的代码才能使用
return "order_id %s" % order_id
# 4.启动程序
if __name__ == '__main__':
#执行了app.run,就会将flask程序运行在一个简易的服务器上(flask提供的,用于测试的)
app.run()
四、Jinja2模板引擎
Jinja2 是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,其是Flask内置的模板语言。
1.简单使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{#这是index.html文件内容#}
{
{ url_str }}<br>
</body>
</html>
# -*- coding:utf-8 -*-
from flask import Flask,render_template
app=Flask(__name__)
# 1.如何返回一个网页(模板)
# 2.如何给模板填充数据
@app.route('/',methods=['GET','POST'])
def index():
# 动态传入参数
url_str="www.baidu.com"
return render_template("index.html",url_str=url_str)
if __name__ == '__main__':
app.run()
2.变量代码块的基本使用
- { {}}来表示变量名,这种语法叫做变量代码块。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{#下面是一个变量代码块的使用#}
{
{ url_str }}<br>
{#列表的使用#}
{
{ my_list }}<br>
{#取 index为 2 的数据#}
{
{ my_list.2 }}<br>
{
{ my_list[2] }}<br>
{#字典的使用#}
{
{ my_dict }}<br>
{
{ my_dict.url }}<br>
{
{ my_dict['url'] }}<br>
</body>