在windows创建第一个Flask框架的Python Web
来源:互联网 发布:中国核潜艇096知乎 编辑:程序博客网 时间:2024/06/05 02:12
本文介绍windows环境下的Flask框架的python web的搭建。
首先当然需要安装Flask,直接pip install Flask即可。
安装了Flask之后,首先定义一个入口文件:
form flask import Flask,render_templateapp = 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_templateapp = 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_templateapp = 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>运行结果就正常了:
- 在windows创建第一个Flask框架的Python Web
- Python创建第一个Django框架的Web项目
- python - web框架 - Flask Mysql 创建表的外键
- 第一个简单的flask框架
- 我的第一个python web开发框架(4)——数据库结构设计与创建
- 关于在Hbuilder创建的第一个web项目
- django+python创建第一个web项目
- 创建第一个python web项目
- 吐槽 Python Web 框架 Flask
- Python flask web框架学习
- Python明星web框架Flask
- Python基础-Web框架-Flask
- 【Flask】我的第一个Flask程序
- 第一部分 flask简介《Flask Web开发:基于Python的Web应用开发实战》
- python Web开发 flask轻量级Web框架
- Flask 一个Python的微型WEB开发框架
- 基于python的web框架——Flask 学习笔记
- 【001】基于Python的Flask Web应用框架(1)
- pdf.js使用教程(支持IE9以上)
- Java集合框架3(泛型集合)
- 关于模型视图矩阵的相机
- 解决redis desktop manager 链接redis服务器链接不上问题
- js基础知识总结
- 在windows创建第一个Flask框架的Python Web
- 迅搜在CentOS7上的安装(yum源)
- Static IP address in linux
- idea关于找不到包的问题,比如:Java:程序包org.springframework.beans.factory.annotation不存在
- 【问题记录】How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version
- 深入理解Java中的String
- (一)计算机相关概述
- 【逆向学习】还是代码 writeup
- Jquery append 方法在ie8不兼容问题