informasi kontak saya
Surat[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)
Nama rute dan tampilan harus unik secara global dan tidak dapat diulang, jika tidak, kesalahan akan dilaporkan.
# 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)
Apa itu perutean?
Perutean adalah aMemetakan hubungan . Ini adalah hubungan pemetaan satu-ke-satu yang mengikat aplikasi (tampilan) dan alamat url! Selama proses pengembangan kami, perutean yang digunakan saat menulis proyek sering kali mengacu pada kelas yang digunakan untuk menyelesaikan fungsi perutean dalam kerangka/proyek. Kelas ini umumnya adalah kelas perutean, atau disingkat perutean.
Di dalam flask, URL dapat meneruskan parameter perutean dengan dua cara:
Parameter perutean adalah bagian dari jalur 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)
Untuk membatasi jenis parameter perutean, konverter milik sistem labu ditulis dalam file werkzeug/routing/converters.py. Di bagian bawah Anda dapat melihat kamus berikut:
# converters用于对路由中的参数进行格式转换与类型限定的
DEFAULT_CONVERTERS: t.Mapping[str, t.Type[BaseConverter]] = {
"default": UnicodeConverter, # 默认类型,也就是string
"string": UnicodeConverter, # 字符串,不包含 /
"any": AnyConverter, # 任意类型
"path": PathConverter, # 也是字符串,但是包含了 /
"int": IntegerConverter,
"float": FloatConverter,
"uuid": UUIDConverter,
}
Penggunaan spesifik konverter bawaan sistem ditulis dalam kode komentar setiap konverter. Harap perhatikan parameter inisialisasi setiap konverter.
Nama konverter | menggambarkan |
---|---|
rangkaian | Tipe default, menerima teks apa pun tanpa garis miring |
ke dalam | Menerima bilangan bulat positif |
mengambang | Menerima nilai floating point positif |
jalur | mengambil alihstring tetapi juga menerima garis miring |
bahasa inggris | Menerima string UUID (Universal Unique Identifier) xxxx-xxxx-xxxx-xxxx |
Kode:
# 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)
Disebut juga parameter perutean pencocokan reguler.
Dalam pengembangan web, mungkin ada skenario yang membatasi aturan akses pengguna. Saat ini, Anda perlu menggunakan pencocokan reguler untuk membatasi parameter permintaan sesuai dengan aturan Anda sendiri sebelum mengakses.
Langkah-langkah implementasi spesifiknya adalah:
Kode
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}的信息"
Jalankan pengujian: http://127.0.0.1:5000/sms/13012345671. Jika URL yang diakses tidak mematuhi aturan, akan muncul pesan bahwa halaman tidak dapat ditemukan.
kelola.py, kode kelas:
# 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和端口