(一)关于模板,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