做企业宣传网站,wordpress apahce 静态 windows,用手机制作视频的软件,wordpress hooks路由
路由的作用是将 HTTP 请求的 URL 路径映射到相应的函数处理程序。这样我们在开发过程中#xff0c;就能将不同的 URL 路径与相应的函数处理程序关联起来#xff0c;从而实现对 Web 应用的灵活控制。
路由可以分为静态路由和动态路由。两者主要是在形式上有一些区别就能将不同的 URL 路径与相应的函数处理程序关联起来从而实现对 Web 应用的灵活控制。
路由可以分为静态路由和动态路由。两者主要是在形式上有一些区别通常静态路由使用 app.route(‘/’) 这样的装饰器形式。
而动态路由会使用变量名 形式通常为 app.route(‘/’, )。当然其中还可以传入其他类型的参数如整型、浮点型甚至 Path 路径等。
静态路由
路由的装饰器形式是 app.route(‘/’)装饰器中的第一个参数是 ‘/’括号当中的斜杠表示项目根路径。
静态路由的工作机制很容易理解在我们的项目开发过程中都是在根路径的基础上去修改 URL对于不同的 URL 需要使用装饰器的方式来绑定不同的视图函数。
装饰器的重要参数
methods 参数
methods 是当前视图函数支持或者说函数指定的 HTTP 请求方法比如POST、GET等
from flask import Flask, request
app Flask(__name__)
app.route(/message, methods[POST])def message():name request.form[name]location request.form[location]age request.form[age]return fHi, {name} ,you have live in {location} for {age} years!
if __name__ __main__:app.run()methods 参数主要用来指定函数的请求方法。在上面的案例中路由装饰器的 methods 参数指定 message() 函数使用 POST 请求方法。在 message() 函数里的参数 name、location、age 使用 request 方法从表单中获取数据message() 函数最后返回了表单中的名字、地址和年龄。
当用户在提交表单数据的时候(你可以理解为前端设计了一个小框你在框内输入东西然后点击回车这个过程就是在提交表单数据即POST)Flask 会自动调用视图函数 message()并且从请求当中获取提交的数据。最后我们将提交的数据返回并展示给用户。这就是 methods 核心作用。
endpiont 函数
Flask 路由装饰器 app.route 中的 endpoint 参数是一个函数用于指定要处理的 URL 的名称。这个参数可以是一个字符串用于匹配要处理的 URL也可以是一个函数用于生成 URL
简单来说就是指定该路由装饰器会调用哪个函数本来不指定endpoint 的时候都会默认认为该路由是下面的函数如果添加了endpoint参数就会调用指定的函数主要作用是实现函数的复用可以让 Flask 能够处理相同 URL 的请求。比方说如果有多个处理相同 URL 的视图函数但是它们使用不同的 endpoint 参数Flask 就会根据传入的 endpoint 参数来选择正确的视图函数。
from flask import Flask
app Flask(__name__)
app.route(/hello, endpointhello_world)
def hello_world(): return Hello, World!
if __name__ __main__:app.run()url_for 装饰器
url_for 是一个用于生成 URL 的装饰器接受函数名作为为第一个参数返回的是该函数对应的装饰器的路径主要是配合redirect()函数的使用
from flask import Flask, escape, url_forapp Flask(__name__)app.route(/)
def index():return indexapp.route(/login)
def login():return loginapp.route(/user/username)
def profile(username):return {}\s profile.format(escape(username))# url_for可以规定这些函数的url地址
with app.test_request_context():print(url_for(index)) #输出/print(url_for(login)) #输出/loginprint(url_for(login, next/)) #输出/login?next%2Fprint(url_for(profile, usernameJohn Doe)) # 输出/user/John%20Doeredirect_to
redirect_to 是重定向装饰器。当用户点击路由跳转链接时浏览器会发送一个 HTTP 重定向请求Flask 路由装饰器 redirect_to 可以捕获这个重定向请求并将用户重定向到目标 URL。
应用 redirect_to 装饰器的重点就是了解它需要接收一个参数这个参数就是重定向后要跳转到的目标 URL会直接跳到这个重定向后的URL
通常配合url_for使用因为url_for会返回一个URL而redirect_to需要传的就是一个URL路径
request对象
request 是一个非常有用的对象它包含了客户端与服务器之间的所有请求和响应数据。
在 Flask 中视图函数的 request 对象通常是由客户端发送给服务器的第一个请求对象它包含了客户端发送给服务器的所有数据比如后面这些信息。
请求头信息如 Accept、Content-Type 等请求的 URL 参数 request.url发送给服务器的请求体数据 request.json请求方法 request.method表单数据即 POST 请求中传递的数据 request.form
案例实战
get 输入到URL内按下回车request相当于是URL内的东西客户端会从URL内得到request所以是服务器到客户端post我们在框内输入按下回车相当于客户端发往服务器了request是从客户端发往服务器的请求
from flask import Flask, render_template, request, redirect, url_forapp Flask(__name__)app.route(/)
def index():return render_template(practice_2_index.html)app.route(/code, methods[GET])
def check_(code):Cipher 路由装饰器if request.method GET and code Cipher:return 使用GET方法口令正确else:return redirect(url_for(failure))app.route(/check, methods[POST])
def check():Cipher 路由装饰器ci request.form.get(cipher)if request.method POST and ci Cipher:return redirect(url_for(success))else:return redirect(url_for(failure))app.route(/success)
def success():return 暗号对接成功def failure():return 暗号对接失败if __name__ __main__:app.run()