python后端:try except 异常处理

195 阅读2分钟

python后端:try except 异常处理

`#if else

def request_hook_url(task_param, hook_url):
    if hook_url:
        r = requests.post(hook_url, json=task_param)
        request_code = r.status_code
        if request_code == 200:
            logger.info(f'request_hookRUL success status code:{request_code}')
        else:
            logger.error(f'request_hookURL process failed,status code:{request_code}')
    else:
        logger.error(f'request_hookRUL failed: {e}')
`
`![设置url为不合法的url地址,函数执行到这个函数会终止运行,这个函数后面的逻辑没有执行,这叫异常导致函数非法终止。有很长的报错信息](https://img-blog.csdnimg.cn/img_convert/ab76fafbecf235fe0eefc301f129682c.png)
try except代替if else
```python
def request_hook_url(task_param, hook_url):
    try:
        r = requests.post(hook_url, json=task_param)
        request_code = r.status_code
        if request_code == 200:
            logger.info(f'request_hookRUL success status code:{request_code}')
        else:
            logger.error(f'request_hookURL process failed,status code:{request_code}')
    except Exception as e:
        logger.error(f'request_hookRUL failed: {e}')
`

![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5953722f04764b9fa628062b3613d372~tplv-k3u1fbpfcp-watermark.image?)

![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6af7237530d44617a99808a7a6f33971~tplv-k3u1fbpfcp-watermark.image?)

-   所以总的来说,try except我可以把他理解为用着更放心的if-else(或者是高级版),他不仅可以帮你解决一些自己为预料到的错误方式且帮你处理遇到的异常,以使你程序正确推进;而且还可以告诉你异常的类型,这样更方便后期debug和定位错误。
-   怎么用呢?夹住可能会出现异常的代码块上下。

Flask诞生于2010年, Armin Ronacher的一个愚人节玩笑。不过现在已经是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。
Flask诞生于2010年, Armin Ronacher的一个愚人节玩笑。不过现在已经是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。
**Flask数据库:**

Web应用中普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储在表中,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示的实体的数据属性。比如:商品表里有name、price、number等。

Flask本身不限定数据库的选择,你可以选择SQL或NOSQL的任何一种。也可以选择更方便的SQLALchemy,类似于Django的ORM。SQLALchemy实际上是对数据库的抽象,让开发者不用直接和数据库打交道,而是通过Python对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升。

SQLALchemy是一个关系型数据库框架,它提供了高层的ORM和底层的原生数据库的操作。flask-sqlalchemy是一个简化了SQLALchemy操作的flask扩展。