zoukankan      html  css  js  c++  java
  • python-flask框架路由

        '''
    http://127.0.0.1:5000/
    后面的这个/叫做根路由
    '''

    '''
    安装flask框架的时候 随着一起的还有jinja2 和 werkzeug
    MTV框架---网站项目的框架
    M---model 数据模型---数据库中的数据
    T---Template 模型 模板文件一般就是html文件
    V---View + route 视图+路由
    路由就是在网址中设置的资源定位根路由是/
    一般的操作是根据路由定位到对应的视图函数View
    执行函数操作对应的业务逻辑

    Jinja2
    flask中的模板引擎 提供了模板的语法

    Werkzeug
    网站数据进行请求时
    客户端 ---浏览器
    |
    web服务请求数据
    |
    wsgi容器(应用服务器)
    |
    web应用程序

    web服务器:
    接受客户端的请求 跟客户端之间是通过http协议惊喜数据交流的
    又是也称作 http服务器

    web服务器只负责处理http协议的 一般就是来处理静态页面的
    像动态数据---数据库中的数据 通过wsgi接口交给应用服务器进行处理

    web服务器常用的 nginx apache等

    wsgi容器:
    常见的wagi容器有gunicorn,uWSGI等
    作用:根据web服务器传递来的参数构建一个让wsgi应用能够成功执行的环境
    并且把wsgi用于上处理好的数据返回给web服务器

    flask框架中 werkzeug就是wsgi的容器
    一般框架中 wsgi容器中 都集成了web服务器
    '''

    '''
    url --- 资源定位符
    / -- 根
    '''
     1 from flask import Flask
     2 from settings import DevelopmentConfig
     3 from settings import ProductionConfig
     4 #创建flask类的对象 需要设置一个参数import_name :设置的时flask对象app所在的模块名
     5 app = Flask(__name__)
     6 #查看应用的配置信息
     7 print(app.config)
     8 # app.config['ENV'] = 'development'#设置当前环境为开发环境
     9 # app.config['DEBUG'] = True
    10 #从配置文件中加载配置信息
    11 app.config.from_object(DevelopmentConfig)
    12 
    13 #设置一个根路由
    14 @app.route('/')
    15 def index():
    16     return 'Hello Flask!'
    17 
    18 #路由
    19 @app.route('/user')
    20 def user_info():
    21     user_dict = {
    22         'name':'橙子',
    23         'age':20,
    24         'sex':''
    25     }
    26     return user_dict
    27 
    28 #路由变量
    29 #URL定位资源的路径中 有一个数据是变化的 每次变化对应着一组数据
    30 @app.route('/phone/<brand>')
    31 def phone(brand):#在路由中有变量的话 一定要在路由中绑定对应的变量
    32     '''
    33     在url中传递不同的变量值 需要再对应的视图函数中根据这个变量的数据 进行查询操作
    34 
    35     '''
    36     return '手机品牌' + brand
    37 
    38 # 分页的情况 变量设置为页码
    39 @app.route('/page/<int:page>')
    40 def page_data(page):
    41     return f'正在请求第{page}页数据'
    42 
    43 #路由中变量必须加中尖括号 不加尖括号就是一个确定字段
    44 
    45 #路由中 路径后加不加/ 路由重定向
    46 '''
    47 加/ ==文件夹
    48 不加 ==文件
    49 加上/ 这个url路径 就相当于 访问文件夹 cd 切换文件夹的时候 后面加不加路径分隔符 都可以
    50 访问资源的时候 后面加不加/ 都能请求定位嗷资源
    51 '''
    52 @app.route('/hello/')
    53 def hello():
    54     return 'hello'
    55 
    56 '''
    57 类似于打开文件 直接写文件名 就能打开文件 但是在文件后面加路由路径分隔符 就找不到这个东西
    58 请求资源的时候 不加可以请求资源 加上 就没有对应的资源啦
    59 '''
    60 @app.route('/nice')
    61 def nice():
    62     return 'nice'
    63 
    64 if __name__ == '__main__':
    65     #启动flask对象 将其部署到服务器上
    66     #可以指定访问服务器的地址 默认是127.0.0.1 只能当前计算机可以访问服务器把他设置成功
    67     #可以指定访问服务器的端口号 默认是5000
    68     #debug 默认是false 在开发环境中建议开启跳水模式 应为开发阶段会经常修改代码 如果是非调试
    69     #项目才可以访问新内容
    70     app.run()



  • 相关阅读:
    EJB Timer Service is not available. Timers for application with id 95795415990861824 will not be deleted
    MySql数据基本操作sql语句
    python 将字符串转换成字典dict的各种方式总结
    Go语言笔记:struct结构遍历
    golang实现base64编解码
    map赋值前要先初始化:assignment to entry in nil map
    python中 .write 无法向文件写入内容
    python 守护进程
    go语言解析 map[string]interface{} 数据格式
    python虚拟环境--virtualenv
  • 原文地址:https://www.cnblogs.com/cheng10/p/13734387.html
Copyright © 2011-2022 走看看