美文网首页
django 小记

django 小记

作者: Dream_lover | 来源:发表于2016-08-01 20:19 被阅读0次

    学会异常捕获

    当程序出现问题时,学会使用异常捕获,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',
    )
    
    1. 在urls.py中加入
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
    urlpatterns += staticfiles_urlpatterns() 
    

    需要注意的是,上面代码的第一行必须放在整个urls文件的第一行,上面代码的最后一行必须放在urls文件的最后一行。

    1. 在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'
    

    相关文章

      网友评论

          本文标题:django 小记

          本文链接:https://www.haomeiwen.com/subject/ujffsttx.html