前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >七日Python之路--第十一天

七日Python之路--第十一天

作者头像
lpe234
发布2020-07-27 17:01:34
3360
发布2020-07-27 17:01:34
举报
文章被收录于专栏:若是烟花若是烟花

(一)关于模板,Template

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

代码语言:javascript
复制
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

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

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

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

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

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

代码语言:javascript
复制
import socket
if socket.gethostname() == 'xxx-pc':
    DEBUG = True
else:
    DEBUG = False

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

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

代码语言:javascript
复制
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

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

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

代码语言:javascript
复制
STATIC_URL = '/static/'

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

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

代码语言:javascript
复制
{% load staticfiles %}

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

(四)关于表单form的csrf

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

代码语言:javascript
复制
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)
代码语言:javascript
复制
<form method='post'>{% csrf_token %}
{{form.as_p}}
<input type='submit'>
</form>

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

(五)关于form表单的创建

可以使用 forms.Form 或 forms.ModelForm

代码语言:javascript
复制
#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


(六)关于过滤器

代码语言:javascript
复制
{{ name|lower }}  

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档