django自定义错误响应
前提:settings.py
#debug为true时要配置网站的allowed_hosts域名
# 简单就为"*"
DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1']
直接templates下书写404.htm,400.html,403.html,500.html
#第一步:总的urls.py 重写handler函数,(注意要加项目app名 要写在上面) from django.conf.urls import url from django.contrib import admin from app01 import views # handler404="app01.views.erro" # handler400="app01.views.erro" # handler403="app01.views.erro" # handler500="app01.views.erro" urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^download/', views.Download),#下载 url(r'^file/', views.File.as_view()),#播放 url(r'^tes/', views.tes),#test url(r'^data/', views.date),#test ] #第二步:views.py写错误调的视图 from django.http import HttpResponseNotFound def erro(request): return HttpResponseNotFound("NOT FOUND!")
API调用方式
下面是python中会用到的库。
urllib2
httplib2
pycurl
requests
urllib2
#request import requests, json github_url = ” data = json.dumps({‘name’:’test’, ‘description’:’some test repo’}) r = requests.post(github_url, data, auth=(‘user’, ‘*‘)) print r.json #以上几种方式都可以调用API来执行动作,但requests这种方式代码最简洁,最清晰,建议采用。
#urllib2, urllib import urllib2, urllib github_url = ‘https://api.github.com/user/repos’ password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm() password_manager.add_password(None, github_url, ‘user’, ‘*‘) auth = urllib2.HTTPBasicAuthHandler(password_manager) # create an authentication handler opener = urllib2.build_opener(auth) # create an opener with the authentication handler urllib2.install_opener(opener) # install the opener… request = urllib2.Request(github_url, urllib.urlencode({‘name’:’Test repo’, ‘description’: ‘Some test repository’})) # Manual encoding required handler = urllib2.urlopen(request) print handler.read()
#httplib2 import urllib, httplib2 github_url = ’ h = httplib2.Http(“.cache”) h.add_credentials(“user”, “**“, ” data = urllib.urlencode({“name”:”test”}) resp, content = h.request(github_url, “POST”, data) print content
#pycurl import pycurl, json github_url = ” user_pwd = “user:*” data = json.dumps({“name”: “test_repo”, “description”: “Some test repo”}) c = pycurl.Curl() c.setopt(pycurl.URL, github_url) c.setopt(pycurl.USERPWD, user_pwd) c.setopt(pycurl.POST, 1) c.setopt(pycurl.POSTFIELDS, data) c.perform()