初识Flask——基于python的web框架
参考教程链接:
https://dormousehole.readthedocs.io/en/latest/
(主要)https://www.w3cschool.cn/flask/
目录:
1.写了一个简单的flask
2.url传参数
3.url_for重定向
4.和html中post和get的交互
5.渲染模板(前端字段交给后端,后端再返回新字段渲染给前端)
前提准备:anaconda(python3),pycharm
一、写一个hello.py
from flask import Flask
app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World’ if __name__ == '__main__':
app.run()
解释:
1.@app.route('/')说明了下面的hello_world()函数与url'/'绑定(http://127.0.0.1:5000/)
运行该hello.py,点击pycharm下的链接http://127.0.0.1:5000/,即会显示字符串Hello World
2.@app.route(‘/hello’)则绑定http://localhost:5000/hello
二、从url名字传递参数(@app.route('/hello/<name>')
from flask import Flask
app = Flask(__name__) @app.route('/hello/<name>')
def hello_name(name):
return 'Hello %s!' % name if __name__ == '__main__':
app.run(debug = True)
输入链接:http:// localhost:5000/hello/Jack
将会显示: Hello Jack!
参考:https://www.w3cschool.cn/flask/flask_variable_rules.html
三、url重定向(return redirect(url_for('hello_admin')))
url_for('') #重定向到另外一个函数
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/admin')
def hello_admin():
return 'Hello Admin' @app.route('/guest/<guest>') def hello_guest(guest):
return 'Hello %s as Guest' % guest @app.route('/user/<name>')
def hello_user(name):
if name =='admin':
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest',guest = name)) if __name__ == '__main__':
app.run(debug = True)
打开浏览器并输入URL - http://localhost:5000/user/admin
浏览器中的应用程序响应是:
Hello Admin
在浏览器中输入以下URL - http://localhost:5000/user/mvl
应用程序响应现在更改为:
Hel
lo mvl as Guest
四、结合html和post和get
将以下脚本另存为login.html
<html>
<body> <form action = "http://localhost:5000/login" method = "post">
<p>Enter Name:</p>
<p><input type = "text" name = "nm" /></p>
<p><input type = "submit" value = "submit" /></p>
</form> </body>
</html>
hello.py如下:
from flask import Flask, redirect, url_for, request
app = Flask(__name__) @app.route('/success/<name>')
def success(name):
return 'welcome %s' % name @app.route('/login',methods = ['POST', 'GET'])
def login():
if request.method == 'POST':
user = request.form['nm']
return redirect(url_for('success',name = user))
else:
user = request.args.get('nm')
return redirect(url_for('success',name = user)) if __name__ == '__main__':
app.run(debug = True)
注意到,form表单method是post,input框的name是'nm'
<p><input type = "text" name = "nm" /></p>
在本地打开文件login.html

summit以后,网页自动跳转到'/ success' URL,显示:welcome mvl
五、渲染
新建一个templates文件夹,用来放html文件
先写hello.html文件
<!doctype html>
<h1>Hello {{ name }}!</h1>
hello.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/hello/<user>')
def hello_name(user):
return render_template('hello.html', name = user) if __name__ == '__main__':
app.run(debug = True)
user是后端,本地的变量
name是定义在前端html文件中的变量
输入链接:http://127.0.0.1:5000/hello/jack, 会显示Hello jack!
六、static文件夹作用
用来放静态文件,如js文件和css文件
https://www.w3cschool.cn/flask/flask_static_files.html
初识Flask——基于python的web框架的更多相关文章
- Django视频教程 - 基于Python的Web框架(全13集)
Django是由Python驱动的开源模型-视图-控制器(MVC)风格的Web应用程序框架,使用Django可以在即可分钟内快速开发一个高品质易维护数据库驱动的应用程序.下面是一大坨关于Django应 ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉 ...
- 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码
在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...
- Python之Web框架
Python之Web框架: 一. Web框架的本质: 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env pyth ...
- Python之Web框架们
Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. pip i ...
- 基于Python的Web应用开发实践总结
基于Python的Web应用开发学习总结 项目地址 本次学习采用的是Flask框架.根据教程开发个人博客系统.博客界面如图所示. 整个学习过程收获很多,以下是学习总结. 1.virtualenv ...
- Python的WEB框架
Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. ? 1 2 ...
- python各种web框架对比
0 引言 python在web开发方面有着广泛的应用.鉴于各种各样的框架,对于开发者来说如何选择将成为一个问题.为此,我特此对比较常见的几种框架从性能.使用感受以及应用情况进行一个粗略的 ...
- Python之Web框架Django
Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址 Python 下载地址:https://www.pyt ...
随机推荐
- 402. 移掉K位数字
给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k.num 不会包含任何前导零.示例 1 : 输入: num ...
- prometheus函数介绍
一 函数介绍 gauge类型的数据 属于随机变化数值,并不像counter那样 是 持续增长 1 increase() increase 函数 在promethes中,是⽤来 针对Counter 这 ...
- backfill和recovery的最优值
ceph在增加osd的时候会触发backfill,让数据得到平均,触发数据的迁移 ceph在移除osd的时候需要在节点上进行数据的恢复,也有数据的迁移和生成 只要是集群里面有数据的变动就会有网卡流量, ...
- ubuntu掉电出现检查文件系统的问题
修改: /etc/default/rcS FSCKFIX=no 为 FSCKFIX=yes 出现这个情况的原因是硬件时钟偏移了 显示上次挂载根目录在未来时间. 写于: 2013年11月28日 更新于: ...
- Java从后端下载文件到浏览器
// 注: // 获取项目下文件或者文件流 // File file = new File(this.getClass().getResource("/xls/adminImportUser ...
- mysql 创建数据库知识总结
表设计 库名.表名.字段名必须使用小写字母,"_"分割,且名称长度不超过12个字符并且要做到见名知意. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FL ...
- docker 国内源切换加速
阿里云比较好: 地址: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
- Redis未授权访问漏洞复现与利用
漏洞简介 Redis默认情况下,会绑定在0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等,这样将会将Redis服务暴露到公网上,如果在没有设置密码认 ...
- 关于ABBYY的常见问题与解答
问:ABBYY的版本那么多,我不知道哪款是我需要的.可不可以帮助我选择? 答:您可在此查看不同版本的功能介绍与版本对比,选择适合自己的版本即可. 查看ABBYY FineReader 15功能:查看A ...
- 《图解TCP/IP》第四章
<图解TCP/IP>第四章 4.1 IP 即网际协议 4.1.1 IP(IPv4.IPv6)相当于OSI参考模型中的第3层-网络层 4.1.2 数据链路层和网络层的关系: 数据链路层的主要 ...