IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 关于我上班摸鱼自学被老板抓到了这件事 -> 正文阅读

[Python知识库]关于我上班摸鱼自学被老板抓到了这件事

日志

书接上文,在一个风和日丽的早晨,我拖着在地铁上被漂亮妹妹挤扁的身躯来到了公司,调好座椅靠背,准备好冰镇快乐水,戴上黑框眼镜,一个勤勤恳恳打工人就出现在了公司里,正准备度过一个美好(摸鱼)的工作日,我如往常一样打开vscode和pycharm,顺手打开ppt,准备像往常一般,一边挂着一边摸鱼自学,Flask内容不少,我也学的很认真,丝毫没有意识到老板此刻已经站在我的背后,他也不出声,就这么看着我自学Flask,在我学完一小节之后突然冷不丁冒出一句“怎么,准备跑路了?”。而此刻我还以为是平时的损友同事,于是乐呵呵的回头和他说? “开玩笑,过会我就rm -rf /* 给大伙放放。。”而当我发现原来是老板时,我的思绪在0.001秒飘向了很远很远,果不其然,被老板骂了四分之一柱香那么久,那真是一段漫长的时间。不说了,等我学好了Flask,我就把老板炒了。

Flask的配置文件与路由

什么是配置文件?

就是当程序调用的一些参数,文件路径,方法或者类放到一个文件中,当下次需要修改的一个参数的时候,不用再从所有关联的程序中找到该参数挨个修改,比较繁琐。像Django中,程序启动的时候需要加载setting.py文件,该文件配置包含中间件,数据库链接,文件路径,静态文件模板路径等参数,当视图函数链接数据库或创建静态文件的时候根据配置文件找到参数即可进行链接或创建文件等等操作,修改
也是如此,只要找到参数修改配置参数即可。

配置文件的实现方式:

flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:
default_config = ImmutableDict({
    'DEBUG':                                get_debug_flag(default=False),
    'TESTING':                              False,
    'PROPAGATE_EXCEPTIONS':                 None,
    'PRESERVE_CONTEXT_ON_EXCEPTION':        None,
    'SECRET_KEY':                           None,
    'PERMANENT_SESSION_LIFETIME':           timedelta(days=31),
    'USE_X_SENDFILE':                       False,
    'LOGGER_NAME':                          None,
    'LOGGER_HANDLER_POLICY':               'always',
    'SERVER_NAME':                          None,
    'APPLICATION_ROOT':                     None,
    'SESSION_COOKIE_NAME':                  'session',
    'SESSION_COOKIE_DOMAIN':                None,
    'SESSION_COOKIE_PATH':                  None,
    'SESSION_COOKIE_HTTPONLY':              True,
    'SESSION_COOKIE_SECURE':                False,
    'SESSION_REFRESH_EACH_REQUEST':         True,
    'MAX_CONTENT_LENGTH':                   None,
    'SEND_FILE_MAX_AGE_DEFAULT':            timedelta(hours=12),
    'TRAP_BAD_REQUEST_ERRORS':              False,
    'TRAP_HTTP_EXCEPTIONS':                 False,
    'EXPLAIN_TEMPLATE_LOADING':             False,
    'PREFERRED_URL_SCHEME':                 'http',
    'JSON_AS_ASCII':                        True,
    'JSON_SORT_KEYS':                       True,
    'JSONIFY_PRETTYPRINT_REGULAR':          True,
    'JSONIFY_MIMETYPE':                     'application/json',
    'TEMPLATES_AUTO_RELOAD':                None,
})

手写配置类(推荐)

class BaseConfig(object):
    DEBUG =True
    SECRET_KEY ="adsaudiada"

class ProductionConfig(BaseConfig):
    DEBUG = False

class DevelopmentConfig(BaseConfig):
    pass

class TestingConfig(BaseConfig):
    pass

什么是路由?router和route的区别?什么是服务器端路由?

答:简单来说,路由就是URL到函数的映射。

答:route就是一条路由,它将一个URL路径和一个函数进行映射 而 router 可以理解为一个容器,或者说一种机制,它管理了一组 route

③答:对于服务器来说,当接收到客户端发来的HTTP请求,会根据请求的URL,来找到相应的映射函数,然后执行该函数, 并将函数的返回值发送给客户端。对于最简单的静态资源服务器,可以认为,所有URL的映射函数就是一个文件读取操作。 对于动态资源,映射函数可能是一个数据库读取操作,也可能是进行一些数据的处理,等等。

Flask创建路由的两种方法(主要看源码)

from flask import Flask,render_template,redirect

app=Flask(__name__) #实例化对象
'''
1.执行 decorator=@app.route('/index',method=['GET','POST'])
2.  @decorator
    -新 index = decorator (index)
'''
#路由方式一:
@app.route('/index',methods=['GET','POST'])  #调用了route方法 会返回函数  def decorator(f: t.Callable) -> t.Callable:
def index():
    return "Index"
#路由方式二:
def order():
    return "Order"

app.add_url_rule('/order',view_func=order)

if __name__ == '__main__':
    app.run()

Flask函数反向生成url

'''
反向生成url 可以
'''

from flask import Flask,render_template,redirect,url_for
app=Flask(__name__) #实例化对象

@app.route('/index',methods=['GET','POST'],endpoint='n1')
def index():
    v1=url_for('n1')
    v2 =url_for('n2')
    v3 =url_for('n3')   #起别名
    print(v1,v2,v3)
    return "Index"

@app.route('/login',methods=['GET','POST'])
def login():
    return "login"

@app.route('/logout',methods=['GET','POST'])
def lohout():
    return "logout"


if __name__ == '__main__':
    app.run()

Flask自定路由转换

'''
Flask框架之自定义路由转换器
    路由传参
    以及自定义正则表达式参数
'''


from flask import Flask,render_template,redirect,url_for
from werkzeug.routing import BaseConverter
app=Flask(__name__) #实例化对象


class RegexConverter(BaseConverter): #BaseConverter
    '''
    自定义url匹配正则表达式
    '''
    def __init__(self,map,regex):
        super(RegexConverter,self).__init__(map)
        self.regex =regex
    def to_python(self, value):
        """
        路由匹配时,匹配成功后传递给视图函数中参数的值
        :param value:
        :return:
        """
        return int(value)
    def to_url(self, value):
        '''
        使用url_for反向生成url时,传递的参数经过该方法处理,返回值用于生成URL中的参数
        :param value:
        :return:
        '''
        val= super(RegexConverter,self).to_url(value)
        return val

app.url_map.converters['regex'] =RegexConverter     #告诉Flask 我要定义一个转换器了 名字为regex
@app.route('/index/<regex("\d+"):nid>',methods=['GET','POST'])
def index(nid):
    print(nid,type(nid))
    url_for('index',nid=999)#/index/999
    return "Index"

if __name__ == '__main__':
    app.run()

Flask? ? ? ? @app,route()中的函数

Flask中的@app.route()中的参数
methods = [ ]:
当前url地址,允许访问的请求方式 类型为可迭代对象,允许八种http请求方式
endpoint = “ ”
路由Mapping地址对应视图函数,有点类似于django中的别名
strict_slashes=True
url地址结尾符“ / ”的控制False: 无论结尾 “ / ” 是否存在均可以访问, True: 结尾不允许是“ / ”, 类似与django中的APPEND_SLASH
defaults={}
视图函数的参数默认值
redirect_to=“/index”
url地址重定向, 浏览器的请求返回为308
301和308都是永久重定向, 区别在于
301 在重定向时允许改变请求方法
308 在重定向时不允许改变请求方法,比如post请求被重定向时,redirect_to的url也为post请求方式,而301就有可能变成了get请求

兄弟们加油!删库跑路指日可待?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:19:48  更:2021-08-21 15:21:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:29:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码