在windows创建第一个Flask框架的Python Web
2017-12-22 11:43
831 查看
本文介绍windows环境下的Flask框架的python web的搭建。
首先当然需要安装Flask,直接pip install Flask即可。
安装了Flask之后,首先定义一个入口文件:
app.route("/")表示路由,"/"表示访问根路径的时候就执行下面的函数,返回字符串显示在web上。
下一步需要设置FLASK_APP这个环境变量的值:
然后启动Flask:
然后就可以通过这里的url,也就是访问127.0.0.1:5000访问我们的python web了:
可是在return里这样以字符串的形式写HTML代码实际上是很麻烦的,这个时候就用到了render_template,修改代码如下:
ctrl+c把刚才的python web停止之后使用flask run命令重新启动,访问127.0.0.1:5000,可以看到运行结果和刚才一样:
可是我们还是不满足,想要把user显示成对应的用户名怎么办?
实际上就可以通过render_template()这个函数来传递,代码修改如下:
render_template()也多了一个参数,第二个参数就表示把当前的name传给index.html。
这样前端就可以直接通过{{}}对变量进行访问了,也就是:
重启flask,访问127.0.0.1:5000/Bob,运行结果如下:
那么如果我们想要把这个参数在前端的js代码中使用怎么办呢?直接在js中{{name}}表示name变量,直接使用可以吗?测试一下,把index.html改为:
发现js报错了,这是为什么呢? 因为实际上{{name}}对应的变量中特殊字符为了防止注入而被做了转义比如这里实际上就是"Bob"中的引号被转义了。利用js的tojson就可以解决这个问题,index.html修改如下:
首先当然需要安装Flask,直接pip install Flask即可。
安装了Flask之后,首先定义一个入口文件:
form flask import Flask,render_template app = Flask(__name__) @app.route("/") def index(): return """ <html> <body> <h1>Hello,user</h1> </body> </html> """在这里Flask是一个类,传递的参数是当前app的名称,这里直接使用__name__表示当前py文件的名称。
app.route("/")表示路由,"/"表示访问根路径的时候就执行下面的函数,返回字符串显示在web上。
下一步需要设置FLASK_APP这个环境变量的值:
set FLASK_APP = C:/Users/m1834/Desktop/代码/flaskTest/flaskTest.py这里FLASK_APP的值是当前py文件的路径,这里是我自己的路径,读者需要改成自己的路径。
然后启动Flask:
flask runwindows终端显示如下:
然后就可以通过这里的url,也就是访问127.0.0.1:5000访问我们的python web了:
可是在return里这样以字符串的形式写HTML代码实际上是很麻烦的,这个时候就用到了render_template,修改代码如下:
from flask import Flask,render_template app = Flask(__name__) @app.route("/") def index(): return render_template("index.html")可以看到我们把return的东西从字符串改成了render_template("index.html")。我们在当前py文件路径下创建一个templates文件夹(这个名称是默认约定,templates不要写错),在templates文件夹内新建一个index.html的文件,里面写上刚才的HTML代码:
<html> <body> <h1>Hello,user</h1> </body> </html>
ctrl+c把刚才的python web停止之后使用flask run命令重新启动,访问127.0.0.1:5000,可以看到运行结果和刚才一样:
可是我们还是不满足,想要把user显示成对应的用户名怎么办?
实际上就可以通过render_template()这个函数来传递,代码修改如下:
from flask import Flask,render_template app = Flask(__name__) @app.route("/") @app.route("/<name>") def index(name): return render_template("index.html",name=name)可以看到路由多了一个url,也就是这个函数不但可以匹配根路径,还可以匹配根路径后面的一个名字,我们把这个名字传进index(name)函数。
render_template()也多了一个参数,第二个参数就表示把当前的name传给index.html。
这样前端就可以直接通过{{}}对变量进行访问了,也就是:
<html> <body> <h1>hello,{{name}}</h1> </body> </html>
重启flask,访问127.0.0.1:5000/Bob,运行结果如下:
那么如果我们想要把这个参数在前端的js代码中使用怎么办呢?直接在js中{{name}}表示name变量,直接使用可以吗?测试一下,把index.html改为:
<html> <body> <h1>hello,{{name}}</h1> <script type="text/javascript"> alert({{name}}); </script> </body> </html>重启flask,访问127.0.0.1:5000/Bob:
发现js报错了,这是为什么呢? 因为实际上{{name}}对应的变量中特殊字符为了防止注入而被做了转义比如这里实际上就是"Bob"中的引号被转义了。利用js的tojson就可以解决这个问题,index.html修改如下:
<html> <body> <h1>hello,{{name}}</h1> <script type="text/javascript"> alert({{name|tojson}}); </script> </body> </html>运行结果就正常了:
相关文章推荐
- 使用Python的Flask框架来搭建第一个Web应用程序
- python - web框架 - Flask Mysql 创建表的外键
- 创建第一个基于flask的python web项目
- 在Linux上安装Python的Flask框架和创建第一个app实例的教程
- 我的第一个python web开发框架(4)——数据库结构设计与创建
- Python创建第一个Django框架的Web项目
- 我的第一个python web开发框架(4)——数据库结构设计与创建
- 使用Python的Flask框架来搭建第一个Web应用程序
- Python Flask Web框架(一)
- 我的第一个python web开发框架(5)——开发前准备工作(了解编码前需要知道的一些常识)
- python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
- 我的第一个python web开发框架(27)——定制ORM(三)
- 我的第一个python web开发框架(36)——后台菜单管理功能
- [Link]选择一个 Python Web 框架:Django vs Flask vs Pyramid
- 我的第一个python web开发框架(1)——前言
- Python Flask Web框架(九)
- 我的第一个python web开发框架本地部署前端访问服务器
- 关于Python对简单的web框架flask的应用使得不只是本机而是局域网都能访问
- Python--Flask--Web服务器框架学习
- 我的第一个python web开发框架(3)——怎么开始?