1 书写路由的两种方法

  1.1 利用Flask实例对象的 add_url_rule 方法实现

    

    该方法有一个必填参数,两个默认参数

  ·  rule : 请求路径的规则

    endpoint : 端点,默认值是与路径规则对应的那个方法名

    view_func : 与路径匹配的那个方法名,如果不指定的话就不知道执行那个方法,素以会报错

  1.2 利用装饰器(@app.route())实现

    注意:app.route() 执行后的返回值才是一个装饰器,route方法和add_url_rule在底层是一样的,因为route会调用add_url_rule

    

  1.3 检查路由

    利用Flask实例对象的 url_map 方法

·    

2 蓝图

  2.1 如何编写蓝图

    创建一个 py 文件 bluePoint.py

    从fask模块中引入Blueprint

      from flask import Blueprint

    创建 Blueprint 实例

      bp = Blueprint('movie', __name__)

    书写蓝图的路由(写法跟Flask对象的书写方法完全相同)

      

from flask import Blueprint

bp = Blueprint('movie', __name__)

@bp.route("/action")
def action():
return "动作电影页面" @bp.route("/child")
def child():
return "动画电影页面"

蓝图源代码

    创建一个py文件 Demo02.py  用于书写Flask应用代码

from flask import Flask 

app = Flask(__name__)

@app.route("/")
def index():
return "这里是首页" @app.route("/test/")
def test():
return "这是测试页面" print(app.url_map) if __name__ == '__main__':
app.run(debug=True)

app应用源代码

    从蓝图模块中引用创建的蓝图对象到app模块

      from bluePoint import bp

    利用Flask的相关方法将蓝图对象注册到Flask对象中

      注册的目的是将蓝图中所有的路由都注册到app应用中去(即:我们可以在前端访问蓝图中的路由和app应用中的路由),但是蓝图中路由的端点会自动加上蓝图的名字

      app.register_blueprint(bp)

from flask import Flask
from bluePoint import bp app = Flask(__name__) @app.route("/")
def index():
return "这里是首页" @app.route("/test/")
def test():
return "这是测试页面" app.register_blueprint(bp) print(app.url_map) if __name__ == '__main__':
app.run(debug=True)

加入蓝图后的app源代码

  

  2.2 利用蓝图实现 url前缀

    只需要在创建蓝图对象的时候加上必选参数 url_prefix 即可,添加了这个必选参数后所有蓝图路由前面机会自动添加这个参数

    注意:url_prefix这个必选参数是一个字符串,而且这个字符串必须以 / 开头,否则会报错

    

    

  

3 利用域名访问

  3.1 域名

    是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称

    百度百科:点击前往

  3.2 通过域名访问网站的原理

    真正的物理服务器唯一的地址就是IP地址

    在浏览器输入域名后回车  ->  到全球顶级DNS服务器中去寻找是否有与之对应的IP地址,如果有就将该IP地址返回给浏览器,让浏览器通过这个IP地址去进行访问  ->  如果没有与之项对应的IP地址就会到次级的DNS中去执行上一步操作

    注意:域名需要购买后才能使用

  3.3 如何实现本机域名

    提示:利用本机作为服务器时,可以通过配置 hosts 文件中的内容来模拟本机域名

    提示:hosts文件的作用就是,当我们在浏览器中输入一个域名时,会先到hosts文件中检查是否有该域名对应的IP地址,如果有就直接利用存在的IP地址去访问服务器,如果没有就通过DNS去寻找,如果通过DNS都找不到对应的IP地址,那么这个域名就是一个无效域名

    利用管理员身份打开一个文本编辑器  ->  再用这个文本编辑器打开hosts文件  ->  添加一些IP地址和对应的域名

    hosts文件中内容的格式

      IP地址  域名

      例如

        

    利用浏览器通过hosts中配置的域名进行访问

      前提:你已经启动了falsk后台,而且进行了相应的路由配置

      

    注意:使用域名访问时,flask后台需要进行config配置(即:将SERVER_NAME配置成和你的hosts文件中一致的域名,而且后面要加上 冒号和端口号, 这个端口号必须是你flask应用中config配置中的端口号,而且通过浏览器访问时在域名后面也要加上 冒号和端口号,但是在hosts配置文件中的域名不用添加 冒号和端口号)

      

  3.4 利用蓝图和hosts实现

    hosts文件位置

      C:\Windows\System32\drivers\etc

    需要在创建蓝图实例时添加默认参数 subdomain  ->  在hosts文件中配置的域名前添加 subdomain 参数传入的值  ->  访问时在域名前加 subdomain 参数传入的值

    

    

    

    利用浏览器访问子域名

      

  3.5 利用蓝图同时实现子域名和url前缀

    

    注意:hosts文件的配置只和子域名有关,和url前缀没有任何关系

    

4 访问静态文件

  只需要创建一个文件夹,在文件里面放置相应的静态文件  ->  在创建Flask对象的时候再通过默认参数 static_folder 指定静态文件的位置  ->  利用浏览器访问的时候秩序在域名和顿口后面添加静态文件在后台的路经即可

  注意:利用 static_folder指定路径时只能使用相对路径,相对路径时相对于当前文件而言

  

    

   

 

    

    

Flask02 路由的书写、蓝图、利用蓝图实现url前缀、利用蓝图实现子域名、访问静态文件的更多相关文章

  1. Flask系列之蓝图中使用动态URL前缀

    让我们先来看一个简单的例子,假设有下面这样一个蓝图(是关于用户主页的): from flask import Blueprint, render_template profile = Blueprin ...

  2. ASP.NET Core 1.0 静态文件、路由、自定义中间件、身份验证简介

    概述 ASP.NET Core 1.0是ASP.NET的一个重要的重新设计. 例如,在ASP.NET Core中,使用Middleware编写请求管道. ASP.NET Core中间件对HttpCon ...

  3. Django(静态文件or路由)

    静态文件 在开发中同创会使用到 css,js,img等静态文件,这里带大家简单的介绍一下django如何处理静态页面, 配置 setting.py文件 STATIC_URL = '/static/' ...

  4. Swift3.0服务端开发(二) 静态文件添加、路由配置以及表单提交

    今天博客中就来聊一下Perfect框架的静态文件的添加与访问,路由的配置以及表单的提交.虽然官网上有聊静态文件的访问的部分,但是在使用Perfect框架来访问静态文件时还是有些点需要注意的,这些关键点 ...

  5. Django-配置、静态文件与路由

    -----配置文件 1.BASE_DIR BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))   2.DEBU ...

  6. django复习-2-配置、静态文件与路由

    一.配置文件 1. BASE_DIR BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) __file__指当 ...

  7. ASP.NET Web API路由系统:Web Host下的URL路由

    ASP.NET Web API提供了一个独立于执行环境的抽象化的HTTP请求处理管道,而ASP.NET Web API自身的路由系统也不依赖于ASP.NET路由系统,所以它可以采用不同的寄宿方式运行于 ...

  8. ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介

    概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要介绍了ASP.NET Core中StaticFile.Middleware ...

  9. NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介

    NET Core 1.1 静态文件.路由.自定义中间件.身份验证简介   概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要 ...

随机推荐

  1. iOS block 闭包的学习

    iOS  闭包 学习 理解: 1 .   闭包外界无法访问内部变量 ,它是一个独立的代码块. 2 .   闭包可以作为 一个方法 ,甚至局部变量  全局 变量 3 .   闭包 是一种引用类型   注 ...

  2. Javamail 发送附件中文名过长以及乱码问题

      最近在弄javamail发送邮件当邮件里含有附件并且附件是中文的时候发送后就会出现乱码!! 通过javax.mail.internet.MimeUtility.encodeText()就可解决这个 ...

  3. UITableViewCell高度自适应的关键点

    iOS开发中对于UITableViewCell高度自适应的文章已经很多很多,但如果cell内容比较复杂,刚使用autolayout配置自使用时还是总不能一次性成功. KEY POINT 这里只说设置的 ...

  4. zabbix实现mysql数据库的监控(二)

    上章我们把zabbix的服务端和客户端都部署完成了,本章接着进行两部分的设置: 1  添加对mysql数据库主机的监控 2  添加对mysql数据库的监控 一.对数据库服务器主机监控 1 创建主机 步 ...

  5. 前端开发笔记--flex布局

    flex布局: 个人觉得flex布局比起传统布局要优先得多(主要是容易使用),缺点是IE10及以上版本才能使用,甚至某些属性只有在IE11才能使用(而且我发现凡是不兼容主要IE的坑来的多,不是说其他浏 ...

  6. CodeForces 455C Civilization(并查集+树直径)

    好久没有写过图论的东西了,居然双向边要开两倍空间都忘了,不过数组越界cf居然给我报MLE??这个题题意特别纠结,一开始一直不懂添加的边长是多长... 题意:给你一些点,然后给一些边,注意没有重边 环, ...

  7. CDN存储和加速静态文件是什么回事(整理)(CDN是什么)

    CDN存储和加速静态文件是什么回事(整理)(CDN是什么) 一.总结 一句话总结: 内容分发网络:Content Delivery Network:依靠网络中的各个节点,就近发放静态资源. CDN的全 ...

  8. BAT系列(一)— CNN

    1.CNN最成功的应用是在CV 那为什么NLP和Speech的很多问题也可以用CNN解出来?为什么AlphaGo里也用了CNN?这几个不相关的问题的相似性在哪里?CNN通过什么手段抓住了这个共性? 以 ...

  9. R语言的学习笔记 (持续更新.....)

    1. DATE 处理 1.1 日期格式一个是as.Date(XXX) 和strptime(XXX),前者为Date格式,后者为POSIXlt格式 1.2 用法:as.Date(XXX,"%Y ...

  10. windows 安装 pytorch

    之前都在服务器上跑pytorch,近来发现新版本可在windows上跑了,甚是开心. 环境: windows7  python3 无CPU 步骤: 1. 确保确保python版本在3.5.3/3.6. ...