成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Django中自定義中間件模塊--自動(dòng)搜索stackoveflow答案

wizChen / 2702人閱讀

摘要:中間件的分類請(qǐng)求期間返回期間如果需要自定義,在中添加對(duì)應(yīng)路徑的文件即可自定義方法需求場(chǎng)景在平時(shí)開發(fā)調(diào)試中,會(huì)遇到這樣那樣的報(bào)錯(cuò),我們自定義一個(gè)簡(jiǎn)單的中間件,的自定義步驟很簡(jiǎn)單,實(shí)現(xiàn)方法即可根據(jù)的和信息,調(diào)用的接口,當(dāng)報(bào)錯(cuò)時(shí)自動(dòng)搜索相關(guān)的答案

Django中間件MIDDLEWARE的分類:

請(qǐng)求期間:

process_request(request)
process_view(request, view_func, view_args, view_kwargs)

返回期間:

process_exception(request, exception) (only if the view raised an exception)
process_template_response(request, response) (only for template responses)
process_response(request, response)

如果需要自定義,在MIDDLEWARE_CLASSES中添加對(duì)應(yīng)路徑的文件即可

MIDDLEWARE_CLASSES = (
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.auth.middleware.SessionAuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
    "django.middleware.security.SecurityMiddleware",
    
    // 自定義Middleware方法
    "app_name.middleware.StackOverflowMiddleware",
)

需求場(chǎng)景

在平時(shí)django開發(fā)調(diào)試中,會(huì)遇到這樣那樣的exception報(bào)錯(cuò),我們自定義一個(gè)簡(jiǎn)單的中間件,django的自定義步驟很簡(jiǎn)單,實(shí)現(xiàn)process_exception方法即可

根據(jù)exception的name和信息,調(diào)用stackoveflow的接口,當(dāng)debug報(bào)錯(cuò)時(shí)自動(dòng)搜索相關(guān)的答案,節(jié)省一些時(shí)間,實(shí)現(xiàn)起來(lái)很簡(jiǎn)單

備注:僅為介紹思路,線上代碼不要這么使用

代碼實(shí)現(xiàn)

app目錄下 middleware.py文件

import requests
from django.conf import settings

class StackOverflowMiddleware(object):
    def process_exception(self, request, exception):
        if settings.DEBUG:
            intitle = u"{}: {}".format(exception.__class__.__name__,  exception.message)
            url = "https://api.stackexchange.com/2.2/search"
            params = {
                "order": "desc",
                "sort": "votes",
                "site": "stackoverflow",
                "pagesize": 3,
                "tagged": "python;django",
                "intitle": intitle
            }
            r = requests.get(url, params=params)
            questions = r.json()
            if len(questions["items"]) > 0:
                print "
The stackoverflow answer top 3 is :
"
                for question in questions["items"][:3]:
                    print "
"
                    print question["title"]
                    print question["link"] + "
"
            else :
                print "
stackoverflow answer not found
"

        return None

效果如下:

Django版本:1.9.4
python版本:2.7.6
調(diào)試時(shí),settings.DEBUG處于開啟模式

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/44790.html

相關(guān)文章

  • Tornado vs Django選型分析

    摘要:前言項(xiàng)目中開發(fā)的幾個(gè)服務(wù)一直使用作為服務(wù)器,本人也曾提出過(guò)疑問(wèn),為什么是,得到的答案是比較,,,的并發(fā)性能最好,而且最為輕量級(jí)。的賣點(diǎn)是超高的開發(fā)效率,其性能擴(kuò)展有限的性能表現(xiàn)前兩天有寫一篇的帖子傳送門使用對(duì)鑒權(quán)接口加壓,看的性能表現(xiàn)。 前言 項(xiàng)目中開發(fā)的幾個(gè)服務(wù)一直使用tornado作為http服務(wù)器,本人也曾提出過(guò)疑問(wèn),為什么是tornado,得到的答案是比較tornado,fla...

    Arno 評(píng)論0 收藏0
  • 利用Django開發(fā)個(gè)小型商城(一)

    摘要:利用開發(fā)個(gè)小型商城我們本期的教程是教大家如何利用開發(fā)一個(gè)小型的商城這里所說(shuō)的小型商城只是功能上的簡(jiǎn)樸。并于年月在許可證下發(fā)布。這套框架是以比利時(shí)的吉普賽爵士吉他手來(lái)命名的。是重量級(jí)選手中最有代表性的一位。 利用Django開發(fā)個(gè)小型商城 我們本期的教程是教大家如何利用Django開發(fā)一個(gè)小型的商城,這里所說(shuō)的小型商城只是功能上的簡(jiǎn)樸。 作者:黃志成(小黃) 作者博客:博客地址 前提 1...

    RobinTang 評(píng)論0 收藏0
  • Django定義信號(hào)(signals)

    摘要:中自定義了一些,用于監(jiān)聽一些操作,并發(fā)出通知官方解釋提供一個(gè)信號(hào)分發(fā)器,允許解耦的應(yīng)用在框架的其它地方發(fā)生操作時(shí)會(huì)被通知到。簡(jiǎn)單來(lái)說(shuō),信號(hào)允許特定的通知一組某些操作已經(jīng)發(fā)生。或者在請(qǐng)求時(shí),記錄請(qǐng)求信息。 django中自定義了一些singals,用于監(jiān)聽一些操作,并發(fā)出通知 官方解釋: Django 提供一個(gè)信號(hào)分發(fā)器,允許解耦的應(yīng)用在框架的其它地方發(fā)生操作時(shí)會(huì)被通知到。 ...

    Hegel_Gu 評(píng)論0 收藏0
  • django創(chuàng)建model錯(cuò)誤解答

    摘要:在沒有添加解決在中添加數(shù)據(jù)庫(kù)配置參數(shù)出錯(cuò)解決查看中參數(shù)是否配置出錯(cuò),比如數(shù)據(jù)庫(kù)指定,數(shù)據(jù)庫(kù)權(quán)限,密碼之類因?yàn)樵谥凶远x了命令,報(bào)命令重復(fù)解決刪掉自定制的,簡(jiǎn)單的也可以在中,注釋掉模塊 1.在settings沒有添加AUTH_USER_MODEL auth.User.groups: (fields.E304) Reverse accessor for User.groups clashe...

    terro 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<