Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
# 1. 导入flask核心类
from flask import Flask
# 2. 初始化web应用程序的实例对象
app = Flask(__name__)
"""第一种:flask项目加载站点配置的方式"""
# app.config["配置项"] = 配置项值
# app.config["DEBUG"] = False
"""第二种:flask项目加载站点配置的方式"""
# app.config是整个flask项目默认的配置属性,里面包含了所有的可用配置项,配置项的属性名都是大写字母或大小字母+下划线组成
config = {
"DEBUG": True
}
app.config.update(config)
# 4. 可以通过实例对象app提供的route路由装饰器,绑定视图与uri地址的关系
@app.route("/")
def index():
# 5. 默认flask支持函数式视图,视图的函数名不能重复,否则报错!!!
# 视图的返回值将被flask包装成响应对象的HTML文档内容,返回给客户端。
return "<h1>hello flask</h1>"
if __name__ == '__main__':
# 3. 运行flask提供的测试web服务器程序
app.run(host="0.0.0.0", port=5000)
Los nombres de las rutas y vistas deben ser únicos globalmente y no pueden repetirse; de lo contrario, se informará un error.
# 1. 导入flask核心类
from flask import Flask
# 2. 初始化web应用程序的实例对象
app = Flask(__name__)
# 开启debug模式
app.config["DEBUG"] = True
# 参数1:rule设置当前视图的路由地址
# 惨呼2:methods,设置当前视图的HTTP请求方法,允许一个或多个方法,不区分大小写
@app.route(rule="/", methods=["get", "post"])
def index():
return "<h1>hello flask1</h1>"
if __name__ == '__main__':
# 3. 运行flask提供的测试web服务器程序
app.run(host="0.0.0.0", port=5000)
¿Qué es el enrutamiento?
El enrutamiento es unMapeo de relaciones . ¡Es una relación de mapeo uno a uno que vincula aplicaciones (vistas) y direcciones URL! Durante nuestro proceso de desarrollo, el enrutamiento utilizado al escribir proyectos a menudo se refiere a la clase utilizada para completar la función de enrutamiento en el marco/proyecto. Esta clase es generalmente la clase de enrutamiento, o enrutamiento para abreviar.
En Flask, la URL puede pasar parámetros de enrutamiento de dos maneras:
Los parámetros de enrutamiento son parte de la ruta URL.
# 1. 导入flask核心类
from flask import Flask
# 2. 初始化web应用程序的实例对象
app = Flask(__name__)
# 开启debug模式
app.config["DEBUG"] = True
@app.route(rule="/", methods=["get", "post"])
def index():
return "<h1>hello flask1</h1>"
"""
路由参数的传递
小括号圈住,里面写上参数变量名
在视图中即可通过参数列表按命名来接收
接收参数时,如果没有在设置路由中设置参数的类型,则默认参数类型为字符串类型
"""
@app.route("/goods/<cid>/<gid>")
def goods(gid, cid):
print(gid, type(gid))
print(cid, type(cid))
return f"显示cid={cid},gid={gid}的商品信息"
if __name__ == '__main__':
# 3. 运行flask提供的测试web服务器程序
app.run(host="0.0.0.0", port=5000)
Para limitar el tipo de parámetros de enrutamiento, el propio convertidor del sistema de matraces está escrito en el archivo werkzeug/routing/converters.py. En la parte inferior puedes ver el siguiente diccionario:
# converters用于对路由中的参数进行格式转换与类型限定的
DEFAULT_CONVERTERS: t.Mapping[str, t.Type[BaseConverter]] = {
"default": UnicodeConverter, # 默认类型,也就是string
"string": UnicodeConverter, # 字符串,不包含 /
"any": AnyConverter, # 任意类型
"path": PathConverter, # 也是字符串,但是包含了 /
"int": IntegerConverter,
"float": FloatConverter,
"uuid": UUIDConverter,
}
El uso específico de los convertidores integrados del sistema está escrito en el código de comentario de cada convertidor. Preste atención a los parámetros de inicialización de cada convertidor.
Nombre del convertidor | describir |
---|---|
cadena | Tipo predeterminado, acepta cualquier texto sin barras |
En t | Acepta números enteros positivos |
flotar | Acepta valores positivos de punto flotante |
camino | tomar el controlstring pero también acepta barras |
Identificador único | Acepta la cadena UUID (Identificador único universal) xxxx-xxxx-xxxxx-xxxxx |
Código:
# 1. 导入flask核心类
from flask import Flask
# 2. 初始化web应用程序的实例对象
app = Flask(__name__)
# 开启debug模式
app.config["DEBUG"] = True
@app.route(rule="/", methods=["get", "post"])
def index():
return "<h1>hello flask1</h1>"
"""
通过路由转换器来对路由参数显示格式转换和限制类型
"""
@app.route("/goods/<float:cid>/<uuid:gid>")
def goods(gid, cid):
print(gid, type(gid))
print(cid, type(cid))
return f"显示cid={cid},gid={gid}的商品信息"
if __name__ == '__main__':
# 3. 运行flask提供的测试web服务器程序
app.run(host="0.0.0.0", port=5000)
También se denominan parámetros de enrutamiento coincidentes regulares.
En el desarrollo web, puede haber escenarios que restrinjan las reglas de acceso de los usuarios. En este momento, debe utilizar la coincidencia regular para limitar los parámetros de solicitud de acuerdo con sus propias reglas antes de acceder.
Los pasos de implementación específicos son:
Código
from werkzeug.routing.converters import BaseConverter
class RegexConverter(BaseConverter):
def __init__(self, map, *args, **kwargs):
super().__init__(map, *args, **kwargs)
self.regex = args[0]
app.url_map.converters["re"] = RegexConverter
"""
自定义路由转换[在实际项目开发中,我们会单独准备一个python文件来保存转换器的定义代码]
"""
from werkzeug.routing.converters import BaseConverter
class RegexConverter(BaseConverter):
def __init__(self, map, *args, **kwargs):
super().__init__(map, *args, **kwargs)
self.regex = args[0]
app.url_map.converters["re"] = RegexConverter
@app.route("/sms/<re('1[3-9]d{9}'):mobile>")
def sms(mobile):
return f"发送短信给手机号:{mobile}的用户"
@app.route("/goods/<re('d+'):id>")
def goods(id):
return f"显示商品id={id}的信息"
Ejecute la prueba: http://127.0.0.1:5000/sms/13012345671 Si la URL accedida no cumple con las reglas, le indicará que no se puede encontrar la página.
administrar.py, código del aula:
# 1. 导入flask核心类
from flask import Flask
# 2. 初始化web应用程序的实例对象
app = Flask(__name__)
# 开启debug模式
app.config["DEBUG"] = True
"""
自定义路由转换[在实际项目开发中,我们会单独准备一个python文件来保存转换器的定义代码]
"""
from werkzeug.routing.converters import BaseConverter
class RegexConverter(BaseConverter):
def __init__(self, map, *args, **kwargs):
super().__init__(map, *args, **kwargs)
self.regex = args[0]
app.url_map.converters["re"] = RegexConverter
@app.route("/sms/<re('1[3-9]d{9}'):mobile>")
def sms(mobile):
return f"发送短信给手机号:{mobile}的用户"
@app.route("/goods/<re('d+'):id>")
def goods(id):
return f"显示商品id={id}的信息"
if __name__ == '__main__':
# 3. 运行flask提供的测试web服务器程序
app.run(host="0.0.0.0", port=5000)
# 如果要基于开发环境在终端启动项目,设置环境变量如下:
export FLASK_DEBUG=True
# 如果要基于生产环境在终端启动项目,设置环境变量如下:
# export FLASK_DEBUG=Flase
# 找到创建flask应用的模块路径,例如:manage.py
# 则ubuntu等Linux下的终端:
export FLASK_APP=manage.py # 这是临时设置,如果有永久设置,可以通过/etc/profile保存
# 2. 在当前虚拟环境中,如果安装了flask模块,则可以使用全局命令flask run,即可运行flask项目
flask run # 采用默认的127.0.0.1 和 5000端口运行项目
flask run --host=0.0.0.0 --port=8088 # 可以改绑定域名IP和端口