flask 反向解析示例

1 静态网页 和动态网页
    1 静态网页:无法与服务器做动态交互的网页
    2 动态网页:允许与服务器做动态加护的
2 WEB 与 服务器
    1 WEB :网页(HTML,css,JS)
3 服务器的作用:
    1 存储WEB上的信息
    2 能够处理用户的请求(request)并给出响应(response)
    3 执行服务器端程序
    4 具备一定的安全功能
框架
    1 什么是框架
        框架是一个为了解决开放性问题而存在一种程序结构
        框架本身提供了一些最基本的功能
        我们只需要在基础功能上抢建自己的操作就可以了
    2 python web 框架
        1 flask - 轻量
        2 webpy - 轻量级
        3 Tornado - 异步框架
        4 django - 重量级框架
    3 框架模式
        1 MTV
            M : Models ,模型层,主要负责数据库建模
            T : T ,用于处理用户的显示内容,如 html
            V :     Views,视图,处理与用户打交道的内容
        2 MVC
            M: 模型层,主要负责数据库建模
            V: 视图,处理用户的显示内容
            C: Controller,控制器,用于与用户交互的部分内容(请求和响应)
4 Flask框架
    1 什么是Flask框架
     Flask是一个基于python并且依赖于Jinja2 模板引擎和Weryzeug WSGI服务的一个微型框架
     WSGI : Web Server Gatway Interface(WEB服务网关接口)
    Flask 是采用MTV的框架模式
5 Flask- 路由(route)
    1 什么是路由
        客户端发送请求给web服务器,web 服务器再将请求发送给Flask程序实例
        程序实例需要知道每个url 请求所对应的运行代码是谁。所以程序中必须要创建一个url 请求地址 到 python 运行函数的一个映射。处理url 
            和函数之间的关系的程序就是“路由”
    2 路由的体现
        在 Flask 中,路由是通过 @app.route 装饰器来表示的
        1 路由的基本表示
        2 带参数的路由
            路由中可以携带参数表示不同的数据
            1 基本代参路由
                @aap.route('./show/<name>')
                def show(name):
                    name:表示的就是从地址栏上传递过来的数据
                    return 'xxx'
            2 带多个参数的路由
                @app.show('/show/<name>/<age>')
            3 指定参数类型的路由
                @app.route('/show/<name>/<int:age>')
                
                int:类型转换器
                Flask 中所支持的类型转换器:
                    类型转换器            作用
                    缺省                字符串,不能有斜杠('/')
                    int:                整型
                    float:                浮点型
                    path:                字符串,可以有斜杠('')
        3 为多个访问地址匹配同一个视图处理函数
            @app.route('/地址1')
            @app.route('/地址2')
            ...
            def index()
            return ''
        4 路由中设置 HTTP请求方法
            Flask路由也允许设置对应的请求方法(post/get),只有将匹配上请求方法的路径才能交给对应的视图处理函数,
            所有的路由,默认只接受 get 请求
            
            @app.route('/xxx/xx',methods=['GET','POST'])
            def xxx:
                #该函数即能接受get 请求也能接受post请求
                pass
        5 URL 的反向解析
            正向解析:程序自动解析,根据@app.route()中的访问路径,来匹配处理函数
            
            反向解析:通过视图处理函数的名称自动生成对应的访问路径
            
            在Flask中要实现反向解析的话需要使用:
                url_for(funName,args)
                    funName:要生成地址的函数名
                    args:该地址中需要的参数
                

# python 3.7
from flask import Flask, url_for

app = Flask(__name__)
print(app,'这里是app')

@app.route('/index')
def index():
    return '<h1>这里是首页</h1>'

@app.route('/admin/login/form/show/<name>')
def show(name):
    return '参数值为:%s'%name

@app.route('/url')
def url():
    # 通过index()解析出对应的访问路径,,此处开始进行反向解析
    url_index= url_for('index')
    url_show= url_for('show',name='liu')
    print(url_show)
    return '<a href="%s">wee</a>'%url_show


if __name__ == '__main__':
    app.run(debug=True)
View Code--反向解析示例


 
原文地址:https://www.cnblogs.com/Skyda/p/9868752.html