flask

提供者:程玥

1.工具名称:flask

2.链接,下载地址:

下载easy_install:
http://pypi.python.org/pypi/setuptools
下载后在cmd下执行python ez_setup.py
在cmd中安装flask:

1.安装虚拟环境:输入easy_install virtualenv

C:\Users\cheng>easy_install virtualenv
Searching for virtualenv
Best match: virtualenv 15.1.0
Processing virtualenv-15.1.0-py3.6.egg
virtualenv 15.1.0 is already the active version in easy-install.pth
Installing virtualenv-script.py script to d:Scripts
Installing virtualenv.exe script to d:Scripts

Using d:\lib\site-packages\virtualenv-15.1.0-py3.6.egg
Processing dependencies for virtualenv
Finished processing dependencies for virtualenv

2.然后cd到myvir目录的Scripts下输入activate.bat,然后输入easy_install Flask

即可安装成功

3.简介

Flask是一个基于Werkzeug,Jinja 2 轻量级的web开发框架, 使用Python开发, 上手简单。
webpy的优势主要在于“小”,如果你想将它引用在项目中是非常简单的事,也就是说学习成本很低。但它的缺点也很明显,后续扩展很麻烦,插件比较少,想要快速开发一个网页几乎自己要写很多东西。

然后简单介绍一下flask,flask也是一款比较出名的微框架,虽然它的插件没有Django多,但完全够用,这个款架有个良好的社区,学习成本也先对小一点。

下面写一下简单的入门知识,很多来自flask文档http://flask.pocoo.org/,这个文档我认为很好。里面不仅提到flask相关的知识,而且包含一些在开发过程中需要注意的安全性问题和注意事项。
开源论坛:https://github.com/shiyanhui/Young
一个打字系统的例子:https://github.com/TrustMe5/TypingSystem
博客的样板例子:https://github.com/Light07/flask_blog
https://github.com/sunshine-sjd/MyFirstBlog
https://github.com/qyzxg/myblog
开源的例子非常多,可以简单快速的做出你需要的网页

4.hello word

1
2
3
4
5
6
7

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__": app.run()

一个最小的应用
在输入helloword代码后,把它保存为 hello.py (或是类似的),然后用 Python 解释器来运行。 确保你的应用文件名不是 flask.py ,因为这将与 Flask 本身冲突。

1
2
$ python hello.py
* Running on http://127.0.0.1:5000/

现在访问 http://127.0.0.1:5000/ ,你会看见 Hello World
在这段代码中:
1.首先,我们导入了 Flask 类。这个类的实例将会是我们的 WSGI 应用程序。

2.接下来,我们创建一个该类的实例,第一个参数是应用模块或者包的名称。

3.如果你使用单一的模块(如本例),你应该使用 name ,因为模块的名称将会因其作为单独应用启动还是作为模块导入而有不同( 也即是 ‘main‘ 或实际的导入名)。这是必须的,这样 Flask 才知道到哪去找模板、静态文件等等。详情见 Flask 的文档。

4.然后,我们使用 route() 装饰器告诉 Flask 什么样的URL 能触发我们的函数。
这个函数的名字也在生成 URL 时被特定的函数采用,这个函数返回我们想要显示在用户浏览器中的信息。
最后我们用 run() 函数来让应用运行在本地服务器上。 其中 if name == ‘main‘: 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。

静态文件

动态 web 应用也会需要静态文件,通常是 CSS 和 JavaScript 文件。理想状况下, 你已经配置好 Web 服务器来提供静态文件,但是在开发中,Flask 也可以做到。 只要在你的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。
给静态文件生成 URL ,使用特殊的 ‘static’ 端点名:

1
url_for('static', filename='style.css')

模板渲染

用 Python 生成 HTML 十分无趣,而且相当繁琐,因为你必须手动对 HTML 做转义来保证应用的安全。为此,Flask 配备了 Jinja2 模板引擎。

你可以使用 render_template() 方法来渲染模板。你需要做的一切就是将模板名和你想作为关键字的参数传入模板的变量。这里有一个展示如何渲染模板的简例:

1
2
3
4
5
6
from flask import render_template

@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
return render_template('hello.html', name=name)

数据库

首先我们要创建数据库模式。对于这个应用来说,一张表就足够了,而且只需支持 SQLite,所以会很简单。只需要把下面的内容放进一个名为 schema.sql 的文件,放在刚才创建的 flaskr 文件夹中:

1
2
3
4
5
6
drop table if exists entries;
create table entries (
id integer primary key autoincrement,
title string not null,
text string not null
);

应用设置

现在我们已经有了数据库模式,我们可以创建应用的模块了。让我们把它叫做 flaskr.py ,并放置在 flaskr 目录下。我们从添加所需的导入语句和添加配置部分开始。对于小型应用,可以直接把配置放在主模块里,正如我们现在要做的一样。但更简洁的方案是创建独立的 .ini 或 .py 文件,并载入或导入里面的值。

1
2
3
4
5
# all the imports
import os
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, \
render_template, flash

但是,

在flask中仅能做出一个优雅地交互网页,并不能实现多变好看的图标效果,需要实现图表效果的话,需要结合echarts进行制作
一般一个网站的搭建会选择使用:使用Flask(轻量级Python Web框架)、Mysql(轻量级数据库,其实主要原因是数据抓取的时候就存储在Mysql里)、Echarts(可视化图表的)。flask 是python web开发的微框架,Echarts酷炫的功能主要是javascript起作用,将两者结合起来,发挥的作用更大。

//