web框架介绍
- web框架:是一种开发框架,用来支持动态网站、网络应用程序及网络服务开发。web框架的本质就是一个socket服务端。
- socket服务端:Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API)。
Flask框架
Flask框架是一个用Python编写的轻量级的Web应用框架。
-
安装:pip install Flask
-
在pycharm中创建Flask项目

-
最简单的完整程序
# 第一个完整程序 hello Flask from flask import Flask app = Flask(__name__) # 创建实例化程序 @app.route("/index/") # 路由装饰器 def index_view(): # 视图函数 return "Hello Flask!" if __name__ == "__main__": # host:IP port:端口 debug:调试模式,True打开 app.run(host="localhost",port=8888,debug=True)命令行运行:python app.py

-
url捕获参数
通过尖括号"<>"捕获URL中的参数,并可以在捕获后转换参数的数据类型,最后传递到修饰的视图函数(请求处理函数)中
Flask 中所支持的类型转换器:
类型转换器 作用
缺省string 字符串,不包含杠(‘/’)
int: 整型
float: 浮点型
path: 字符串,包含斜杠(‘/’)from flask import Flask app = Flask(__name__) # 参数捕获 @app.route("/hello/<name>/") # /hello/<string:name>/ string可省略 def param_str_view(name): return "<h3 style='color:blue'>姓名:"+ name +"</h3>" @app.route("/hello/ages/<int:age>/") # 通过int 控制参数的格式,float同理,系统匹配以“/” 结束 def param_int_view(age): return "<h3 style='color:blue'>年龄:"+ str(age) +"</h3>" @app.route("/files/<path>/") # 路径path,会连同"/"匹配 def param_path_view(path): return "<h3 style='color:blue'>路径是:"+ str(path) +"</h3>" if __name__ == "__main__": app.run()


-
Flask-Script 插件
将程序实例对象传入Manager中的构造方法中,使用manager管理对象来启动应用,启动服务时,支持命令行选项
安装:pip install flask-scriptfrom flask import Flask from flask_script import Manager app = Flask(__name__) # 创建实例化程序 manager = Manager(app) # 创建manager管理对象,将程序实例对象传入Manager中的构造方法中 @app.route("/index/") # 路由装饰器 def index_view(): # 视图函数 return "Hello Flask!" if __name__ == "__main__": manager.run() # 通过manager对象来启动应用命令行启动服务命令:python 启动脚本名称 runserver 选项参数
常用的启动参数:
-h 允许访问的主机
-p 开放的端口号
-d 开启调试
-r 自动监测程序改动,自动重启服务器
-R 不监测程序改动python app.py runserver -h 0.0.0.0 -p 8000 -d

-
response响应对象
通过make_response()函数创建响应对象,cookie正是通过该对象创建的from flask import Flask,make_reaponse from flask_script import Manager app = Flask(__name__) manager = Manager(app) @app.route("/cookie/") def add_cookie_view(): response = make_response("Cookie添加成功!") response.set_cookie("name","Jack",max_age=30) # max_age 过期时间 response.set_cookie("user","admin") return response @app.route("/cookies/") def cookies_view(): cookies = request.cookies html = "" for k, v in cookies.items(): # 遍历所有Cookie html += k html += "========>" html += v html += "<br/>" return html

-
重定向:redirect
使用redirect(“重定向的路径”)函数实现重定向,可以重定向到外网,eg:https://www.baidu.com/,也可以重定向到本项目中的路由地址import time from flask import Flask,make_reaponse,redirect from flask_script import Manager app = Flask(__name__) manager = Manager(app) @app.route("/redirect/") def redirect_view(): i = 5 while i > 0: time.sleep(1) print("还剩%s秒跳转到百度"%i) return redirect("https://www.baidu.com/")

-
反向解析:动态获取url,处理硬编码。url_fro(endpoint,**kwargs)
endpoint:视图函数,通过此视图函数名获取对应的路由
**kwargs:如果对应的路由需要传递参数,则通过关键字实参传递from flask import Flask,url_for,redirect from flask_script import Manager app = Flask(__name__) @app.route("/ageview/<int:age>/",) def age_view(age): return "年龄是:" + str(age) @app.route("/index/age/") def index_view(): # 重定向+ 反向解析 age = 20 # 反向解析的视图函数需要传递参数,则使用关键字传参 return redirect(url_for("age_view",age=age))
待更新。。。
本文是Flask入门系列的第一部分,介绍了web框架的基本概念,详细讲解了Flask框架的安装和基本使用,包括URL捕获参数、Flask-Script插件的安装与使用,以及响应对象、重定向和反向解析的概念。适合初学者了解和学习Flask框架。
&spm=1001.2101.3001.5002&articleId=102515199&d=1&t=3&u=54aacfc7052349d5bee893fc28482d41)
1423

被折叠的 条评论
为什么被折叠?



