今日内容

1.路由的分发,以下两种方式效果一样,但是都能指向同一个函数

from flask import Flask 

app=Flask(__name__)

#第一种方式
@app.route('/my_de')
def my_de():
return '黑河' #第二种方式
app.add_url_rule( '/my_detail' , view_func=my_de) if __name__== '__main__':
app.run(debug=True)

  允许请求进入的8种请求方式:

GET
POST
PULL
DELETE
OPTIONS

  methods = 可迭代对象 [ ] , ( , )

methods=['POST','GET']

  endpoint 路由Mapping 地址对应视图函数

  url_for 用来反向解析URL地址

  url_for(endpoint)

需要了解

strict_slashes=True #是否严格遵循路由匹配 ,默认值是True ,必须严格遵循
defaults={'nid':3} #默认路由由参数 -视图函数中必须有一个nid(key)的形参接收
redirect_to='/index' # 永久重定向 301 不进入视图函数, 直接跳转

  动态接收参数(重要,必须要记住)

@app.route('/get_img/<path>/<xixi>')

#这里我们接收参数必须要和路由中尖括号括起来的参数一致,否则会报错
def get_img(path,xixi): return f'儿砸儿砸,我是{xixi}'

  

Flask配置

1.Flask初始化配置
app=Flask(__name__)
1.template_folder='tem'    #指定模板存放路径,这里我们不写的话,默认是'templates'
2.static_folder='img3'    #指定静态文件的存放路径,默认是'static'
3.static_url_path = '/static' #指定静态文件访问路径
   4.static_host = None      #静态文件的存放服务器
   5.subdomain_matching = False #遵循子域名匹配 2.Flask对象配置
  app.config == app.default_config #查看默认配置 及 配置项 class OBJ(object):
  DEBUG=True
app.config.from_object(OBJ) #记住, from_object就是点出来的属性,他能加载各种环境,例如

  我在mysettings中创建了两个类

  mysettings.py

class Debugsetting(object):
DEBUG = True
SECRET_KEY = "#$%^&*$%^&*(%^&*(%^&*("
SESSION_COOKIE_NAME = "我都说了我不是Session"
JSONIFY_MIMETYPE = "application/javascript" class TestingSetting(object):
DEBUG = False
TESTING = True
SECRET_KEY = "我其实是正式环境的赛克瑞特钥匙"
SESSION_COOKIE_NAME = "SHIT"
JSONIFY_MIMETYPE = "application/json"

  在text.py中,代码如下

from mysetting import DebugSetting
from mysetting import TestingSetting # app.config.from_object(DebugSetting)
app.config.from_object(TestingSetting) @app.route("/index")
def index():
session["key"] = "value"
return render_template("index.html") app.run()

  此时,如果你app.config.from_object(debugsetting),加载的就是debug环境,要是textingsetting,就是test环境.

app.config['key'] = value

  如果你指定了content-type,但是浏览器识别不出来,他会给你下载下来,你手动打开,里面有你的代码

Flask  蓝图(Buleprint)

  app.py中

from flask import Blueprint

#我们理解buleprint为不能run的flask
实例化的对象 标识不能重复,但是必须有,否则就报错
user=Blueprint('user',__name) @user.route('/users')
def func1():
return '我是func1'

  如果你想在别的文件中引入,那么你需要注册这个蓝图

from app import user
from flask import Flask app=Flask(__name__) app.register_buleprint(user) if __name__ == '__main__':
app.run(debug=True)

  

  

  

flask 第二章 endpoint重名 Flask路由 初始化配置 Falsk Config 蓝图+目录结构的更多相关文章

  1. flask --- 02. 路由, 初始化配置,蓝图

    一.Flask 路由 1.添加路由的方式 ① ② 实例: ① @app.route("/my_de") def detail() ② def detail() app.add_ur ...

  2. flask模板语言,装饰器,路由及配置

    1.模板语言jinja2 Flask中默认的模板语言是Jinja2 1.0 模板传参 from flask import Flask,render_template app = Flask(__nam ...

  3. 第二章 Jackson属性名转换+属性忽略

    @Data @JsonIgnoreProperties(ignoreUnknown = true) public class MyRecord { private boolean succeed; p ...

  4. Spring3实战第二章第一小节 Spring bean的初始化和销毁三种方式及优先级

    Spring bean的初始化和销毁有三种方式 通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法: 优先级第二通过 <bean& ...

  5. Flask(2)- 装饰器的坑及解决办法、flask中的路由/实例化配置/对象配置/蓝图/特殊装饰器(中间件、重定义错误页面)

    一.装饰器的坑以及解决方法 1.使用装饰器装饰两个视图函数,代码如下 from flask import Flask, redirect, render_template, request, sess ...

  6. Flask 教程 第二章:模板

    本文翻译自 The Flask Mega-Tutorial Part II: Templates 在Flask Mega-Tutorial系列的第二部分中,我将讨论如何使用模板. 学习完第一章之后,你 ...

  7. flask第一章 flask启动 路由视图 FlaskRequest jinja2 FlaskSession

    一.简单了解flask web框架 优点: 小而精,组件只有session,第三方机构强烈支持flask,极其简单 缺点: 由于第三方软件的关系,稳定性相对较差,flask-session 扩展知识: ...

  8. 第一篇 Flask基础篇之(配置文件,路由系统,模板,请求响应,session&cookie)

    Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后 ...

  9. Flask入门 之 endpoint

    首先,要纠正两个错误! 1.flask是通过endpoint找到viewfunction(视图函数的),并不是通过路由直接找到viewfunction的. 2.是url_for(endpoint)而不 ...

随机推荐

  1. CentOS下使用tcpdump网络抓包

    tcpdump是Linux下的截获分析网络数据包的工具,对优化系统性能有很大参考价值. 安装 tcpdump不是默认安装的,在CentOS下安装: yum install tcpdump 在Ubunt ...

  2. Oracle错误——tablespace 'XXXX' does not exist

    错误 在使用IMP命令导入Oracle数据的时候,因为导出数据的数据库表空间和导入数据的数据库表空间不同,导致导入数据失败,出现:tablespace 'XXXX' does not exist 在网 ...

  3. BZOJ 3473 字符串

    思路 广义SAM的题目,先全部插入,然后每个字符串在SAM上匹配,如果发现当前sz小于k(就是前缀不满足条件),就跳fail(找前缀的后缀,就是找子串)到满足条件为止,然后一个满足条件的节点,它的所有 ...

  4. cuda cudnn tensorflow-gpu安装

    Ububtu18.04下载cuda9.0 下载好后得到: CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,需要安装gcc-6与g++-6 查看当前版本 ...

  5. C# 如何获取可执行文件路径的上上级目录

    1. DirectoryInfo di = new DirectoryInfo(string.Format(@"{0}..\..\", Application.StartupPat ...

  6. aop(execution()表达式)

    execution(* com.tp.soft.service..*.*(..)) 整个表达式可以分为五个部分: 1.execution(): 表达式主体. 2.第一个*号:表示返回类型,*号表示所有 ...

  7. Web浏览器与Web服务器之间的通信过程

     HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:1:建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连 ...

  8. 简单谈谈$.merge()

    var arr1 = [1,2,3]; var arr2 = [1,2,3]; console.log($.merge(arr1,arr2)) //[1,2,3,1,2,3],可见数组间只是合并,不会 ...

  9. 1.1 Django起步

    1.1 Django起步   1.1.1. Django简介   Django开发框架(简称Django)诞生的时间是2003年的金秋时节,美国有两位程序员Adrian  Holovaty和Simon ...

  10. Openstack中keystone与外部LDAP Server的集成

    openstack中keystone鉴权的用户user和password信息,通常保存在mysql数据库的keystone库: 表local_user和表password: keystone也支持外部 ...