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