七日Python之路--第十一天

时间:2022-07-22
本文章向大家介绍七日Python之路--第十一天,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

(一)关于模板,Template

可以在项目根目录下的settings.py 配置文件中,声明

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

TEMPLATE_DIRS = os.path.join(BASE_DIR, 'templates')

这样模板的默认搜索就是在根目录的'templates'文件下进行寻找。

但是,感觉还是不声明,直接使用默认的搜索路径比较好。当不进行声明时,默认搜索路径是相应的app应用目录下的‘templates’文件夹下。

(二)关于默认DEBUG模式,及出错界面

是否启用Debug模式,可以这样来判断

import socket
if socket.gethostname() == 'xxx-pc':
    DEBUG = True
else:
    DEBUG = False

当启用DEBUG模式时,出错界面采用系统自带的。当关闭DEBUG模式时,会在模板根目录下搜寻出错页。因此可在‘templates’下定义404.html,500.html等自定义出错页。

还有就是。当DEBUG模式关闭时,需要设置

ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

(三)关于静态文件,css,js etc.

Django1.6 创建默认在settings.py 中

STATIC_URL = '/static/'

这样只需要在相应的app下面新建‘static’文件夹即可。

静态文件在html文件中的引用,可以使用

{% load staticfiles %}

{% static 'boostrap.css' %} <!-- 这样就能引用静态文件了 -->

(四)关于表单form的csrf

需要在views.py 文件中这样处理

from django.core.context_processors import csrf

def register(req):
    if req.method == 'POST':
        form = UserForm(req.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            user = User(username=username, password=password)
            user.save()
            return HttpResponseRedirect('/blog/login/')
    else:
        form = UserForm()
        context = {'form':form}
        context.update(csrf(req))
        return render_to_response('register.html',context)
<form method='post'>{% csrf_token %}
{{form.as_p}}
<input type='submit'>
</form>

这样处理request的返回context即可。

(五)关于form表单的创建

可以使用 forms.Form 或 forms.ModelForm

#coding=utf-8
from django import forms
from models import Comment

# class CommentForm(forms.Form):
#     name = forms.CharField(max_length=20, label=u'昵称', error_messages={'required': '请输入姓名'})
#     address = forms.CharField(max_length=20, label=u'地址', required=False)
#     email = forms.EmailField(label=u'邮件', required=False)
#     context = forms.CharField(label=u'评论', widget=forms.Textarea)


class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ['name', 'address', 'email', 'context']
        labels = {
            'name': u'昵称',
            'address': u'地址',
            'email': u'邮件',
            'context': u'评论',
        }
        widgets = {
            # 'context': forms.Textarea(attrs={'cols': 80, 'rows': 20})
            'context': forms.Textarea,
            # 'article': forms.HiddenInput,
        }
        error_messages = {
            'name': {
                'required': u'请输入姓名'
            }
        }
        help_texts = {

        }

ok,先这样。

--2014年08月08日22:00:25


(六)关于过滤器

{{ name|lower }}  

{{ pub_date|date:"F j, Y" }}

具体用法,还有待研究!!!

唉,现在回想那天的文章。不免感觉自己还是太闷了。只是一味的低沉,人生更多的是需要积极与乐观,不虚度年华。今天早点睡觉吧。熬夜是对自己身体的不负责任! -- 2014年08月08日23:35:24