学会异常捕获
当程序出现问题时,学会使用异常捕获,such as:查询结果集中没有想要的查的对象或字段,返回xxDoesNotExist,这时就可以捕获这个异常,进行下一步处理。
django静态文件
1-1. 在settings.py文件中找到INSTALLED_APPS,加入‘django.contrib.staticfiles’
1-2. 在TEMPLATE_CONTEXT_PROCESSORS中加入 'django.core.context_processors.static'
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
)
1-3. setting.py中加入templates_url
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/'),
# '/var/www/static',
)
- 在urls.py中加入
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
需要注意的是,上面代码的第一行必须放在整个urls文件的第一行,上面代码的最后一行必须放在urls文件的最后一行。
- 在templates中加入:
{% load staticfiles %}
小细节
在改变models.py的时候要重新生成sqlite3,不然可能更新不了
在django查询结果集中可以用xx.order_by(’yy‘)按字段 ’yy‘ 排序
在django中,与前端ajax交互的时候,可以以文件流的形式返回一个参数,django 在返回页面是返会的都是Response对象,可以当成文件流来操作
res = HttpResponse()
with open('static/html/resume_detail.html') as f:
res.write(f.read())
return res
在操作文件流时可以用with,作用范围就在with下的函数块内,当然如果你记得close()也可以不用
with.....as ....:
xxxxx
- 在接收前端传回的数据时注意检查传过来的数据类型
request.POST.getlist()#list ajax在传数组的时候会在后面加’[]‘,接收的时候要在键的后面加’[]‘
request.POST.get()#json 要先用json.loads()转换json对象
字符串转换为字典:
>>> a = '{'a':1,'b':2}'
>>>type(a)
'unicode'
>>>d = eval(a)
{'a':1,'b':2}
>>>type(d)
'dict'