七日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

七日Python之路--第十一天,布布扣,bubuko.com

时间: 2024-10-11 01:43:15

七日Python之路--第十一天的相关文章

七日Python之路--第十二天(Django Web 开发指南)

<Django Web 开发指南>.貌似使用Django1.0版本,基本内容差不多,细读无妨.地址:http://www.jb51.net/books/76079.html (一)第一部分 入门 (1)内置数字工厂函数 int(12.34)会创建一个新的值为12的整数对象,而float(12)则会返回12.0. (2)其他序列操作符 连接(+),复制(*),以及检查是否是成员(in, not in) '**'.join('**')   或  '***%s***%d' % (str, int)

七日Python之路--第九天

众所周知,代码这东西不是看出来的.程序这东西只哟一个标准. 下面找点开源的东西看看,学习一下大婶们的犀利编码...... 推荐一下: 虽然有点老了:http://www.iteye.com/topic/405150,还有就是GitHub上面搜索一下Django就能出来很多,当然还有OSChina.只是有个问题,就是Django版本不同,具体的内容可能会有些不同,但大概还是相同的.领略即可,然后书写自己的代码. 首要的还是官方文档. 看着还是有些难度的.偶然发现一个不错的Blog:http://w

七日Python之路--第五天(之找点乐子)

(一)一些闲言碎语 刚才在搜索的时候,看到别人说的一句话,大体意思如下:自从学习Python之后,就不想在学习其他语言了,只想抓紧时间写些有用的东西.细想一下,果真如此. 唉,Python魅力如此之大.感觉比Java容易的多,也可能是小众语言,因为足够小才显得足够强大.算了,不愿多想,还是多写些有意思的东西吧,哈哈. (二)一些有趣的代码 (1)一句话文件服务器 [email protected]:~$ python -m SimpleHTTPServer Serving HTTP on 0.0

七日Python之路--第一天

网上的资源师丰富的.但难免有些过时的信息,比如我现在使用的是去年下载的python3.3,而网上多数都是Python2.7. 差别比较大的就是:①读取用户输入raw_input()已经不能使用,只能使用input().②文件读取file()也不能使用了,被替换成了open(). 入门教材算是看的<简明Python教程>:地址 http://sebug.net/paper/python/index.html 一共16个章节,大约两个小时看完.这样算是入门了吧. 由于之前研究Java方向是WEB方

七日Python之路--第十三天(最后一天)

好久没更新博客了.前几天一个初级博客基本成型,然后想着怎么放到sae上,这事着实给难住了.最后算是基本完成,Django1.6需要自己上传.然后就换成了Django1.5,然后配置好数据库并将数据SQL语句插入进去即可. 博客地址: tiny234.sinaapp.com . 接下来再继续修改下细节部分.再将代码放到github上. 剩下的,开始研究Spider了..... --2014年08月18日20:57:23 梦醒人不见,泪眼映孤灯.   --临江仙   <铁磁铜牙纪晓岚> 七日Pyt

七日Python之路--第三天

之前由于看基础看的觉着没意思,才去提前看一下Django的.现在突然不知到该干啥了. 不管什么语言,官方文档是必须的.so........... 莫名浮躁,实在看不下去........   待会研究 re 吧.虽然之前研究过,但许久不使用,忘的差不多了....Orz. --2014.7.23 18:37 正则表达式: 1.掌握正则表达式的规则 正则表达式是一种小型,高度专业化的编程语言,内嵌Python中,通过re模块实现. 正则表达式模式被编译成一系列字节码,由用C编写的匹配引擎执行. 字符匹

七日Python之路--无关Python(混人乱语,不看也罢)

2014年08月06日的下午,内心压制不住的狂躁抑或浮躁.莫名的感到很多无形的压力,以至于感觉自己似乎快要死去. 怎么说呢,前些日子情人节.自己鼓足勇气去见了自己内心喜欢的女生,当然她也是知道的.我们大二还是大三认识的,差不多有两年多了吧.大学不在一个学校,还有一个原因就是她那时有男朋友,但跟男朋友的时分时合.自己由于种种原因,跟她联系也不是太多.后来毕业,自己考研失败,当然这其中全是自己的问题,既然自己做出了选择便没有什么谈论后悔的资格.后来知道她考上了研究生.而我则在青岛找了一家小公司做起了

七日Python之路--第九天(blog与Django)

在做models之前,最好将https://docs.djangoproject.com/en/1.6/  中的the model layer 细读. (一)琐碎 (1)*args和**kwargs.的使用 在Django中经常见到含有这两个参数的函数.*args可代表任意个参数:func(arg, *args)代表这个函数可以有一个或更多个参数.可以理解成一个参数list.**kwargs可以代表任意个K=V形式的参数.大体就是这样. (2)不经意间,被MySQL的编码折磨.Ubuntu下修改

七日Python之路--第三天(之不安分 wxPython)

Python有好多个GUI框架,wxPython比较流行,so just do it.....   Win下各种不爽,又换Ubuntu 跟着教程做个记事本.视频地址:http://www.pythoner.cn/course/topic/wxPython-gui/ (一)wxpython的安装 Ubuntu下的安装,还是比较简单的. #使用:apt-cache search wxpython 测试一下,可以看到相关信息 [email protected]:~/Python$ apt-cache