今日内容

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. snmp模拟器snmpsid使用

    snmpsim使用 安装 pip install snmpsim 简单使用 生成snmpwalk文件: snmpwalk -v2c -c 'password' -ObentU 218.200.x.15 ...

  2. ZOJ 2112 Dynamic Rankings(树状数组套主席树 可修改区间第k小)题解

    题意:求区间第k小,节点可修改 思路:如果直接用静态第k小去做,显然我更改一个节点后,后面的树都要改,这个复杂度太高.那么我们想到树状数组思路,树状数组是求前缀和,那么我们可以用树状数组套主席树,求出 ...

  3. Codeforces Round #544 (Div. 3)解题报告

    A.Middle of the Contest 考虑把输入的时间单位化成分钟,相加除以2就好了 #include<bits/stdc++.h> using namespace std; # ...

  4. office 2019 下载地址

    office2019激活密钥 W8W6K-3N7KK-PXB9H-8TD8W-BWTH9    Office2019下载地址: 下载地址 专业增强版(强烈推荐): http://officecdn.m ...

  5. linux 添加环境变量

    You have to edit three files to set a permanent environment variable as follow: ~/.bashrc When you o ...

  6. 8、Dockerfile详解

    除了init之外,每一个进程都应该是其他进程的子进程(init是内核启动的),当手动启动nginx时,那么这个nginx就以shell子进程存在.当打开一个命令行提示符时,这个就相当于在运行一个she ...

  7. Linux操作系统的VI命令

    Linux操作系统的VI命令 VI是Linux系统的一个文本编辑器,该编辑器可以通过使用VI命令来操作,从而完成对文本的编辑.熟练掌握一些常用的VI命令,可以大大简化编辑操作并提高操作Linux文本的 ...

  8. TCGA样本命名详解

    在TCGA中,一个患者可能会对应多个样本,如TCGA-A6-6650可以得到3个样本数据: TCGA-A6-6650-01A-11R-1774-07TCGA-A6-6650-01A-11R-A278- ...

  9. windows 定时备份linux 上oracle 数据库

    1.bat 脚本 exp root/root@10.0.0.0:1521/feiye grants=y owner=root file='E:\code\environment\mysqlBackDa ...

  10. 站在Web3.0 理解IPFS是什么

    尽管网络上,已经有不少文章讨论IPFS,不过真正讲明白IPFS想做什么的很少,文本尝试站在未来Web3.0的高度来看看IPFS究竟用来解决什么问题. DApp 的缺陷 对区块链有所了解的同学,知道区块 ...