Django模块笔记【四】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/

*该笔记将对各个模块进行单独介绍

*template

1. 配置(Configuration)

 1 TEMPLATES = [
 2     {
 3         ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
 4         ‘DIRS‘: [],
 5         ‘APP_DIRS‘: True,
 6         ‘OPTIONS‘: {
 7             # ... some options here ...
 8         },
 9     },
10 ]

2. 使用

get_template()载入模板,select_template()载入模板列表。他们会在DIRS指定的目录下寻找相应模板。

render_to_string()也载入模板,并立即调用相应的render()方法。


3. 自定义后台

 1 from django.template import TemplateDoesNotExist, TemplateSyntaxError
 2 from django.template.backends.base import BaseEngine
 3 from django.template.backends.utils import csrf_input_lazy, csrf_token_lazy
 4
 5 import foobar
 6
 7
 8 class FooBar(BaseEngine):
 9
10     # Name of the subdirectory containing the templates for this engine
11     # inside an installed application.
12     app_dirname = ‘foobar‘
13
14     def __init__(self, params):
15         params = params.copy()
16         options = params.pop(‘OPTIONS‘).copy()
17         super(FooBar, self).__init__(params)
18
19         self.engine = foobar.Engine(**options)
20
21
22     def from_string(self, template_code):
23         try:
24           return Template(self.engine.from_string(template_code))
25         except foobar.TemplateCompilationFailed as exc:
26             raise TemplateSyntaxError(exc.args)
27
28     def get_template(self, template_name):
29         try:
30             return Template(self.engine.get_template(template_name))
31         except foobar.TemplateNotFound as exc:
32             raise TemplateDoesNotExist(exc.args)
33         except foobar.TemplateCompilationFailed as exc:
34             raise TemplateSyntaxError(exc.args)
35
36
37 class Template(object):
38
39     def __init__(self, template):
40         self.template = template
41
42     def render(self, context=None, request=None):
43         if context is None:
44             context = {}
45         if request is not None:
46             context[‘request‘] = request
47             context[‘csrf_input‘] = csrf_input_lazy(request)
48             context[‘csrf_token‘] = csrf_token_lazy(request)
49         return self.template.render(context)

-- The End --

时间: 2024-11-14 01:28:38

Django模块笔记【四】的相关文章

Django模块笔记【一】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 *Model&Database 1. 模型(models) 模型是数据的唯一信息源,它指示了数据的域(fields)和行为(behaviors).每个模型都对应一个数据库表. ①每个模型都是django.db.models.Model的子类:②模型的每个属性代表了数据库的域:③数据库入口API,参考making queries部分. 比如, 1 fro

Django模块笔记【六】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 *migration&Managing files&Testing in Django 1. migration的命令 migrate命令负责应用migrations,同时也负责撤销migrations以及查看他们的状态. makemigrations基于对模型的改变,创建新的migrations. sqlmigrate为migration显示S

Django模块笔记【三】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 *Forms 1. 使用表单(Working with forms) 只要网站涉及到访问者的输入操作,那么就必须用到表单.在HTML中,表单是<form>...</form>中的语句集合. GET和POST是HTTP处理表单仅有的两种方式.Django中使用Form类表示表单. 对使用方法进行简单举例: 1 # forms.py 2 3

Django模块笔记【二】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 * HTTP Request Handlers 1. URL dispatcher URL在名为URLconf的Python模块中创建,该模块提供了URL模式(正则表达式)和Python函数(视图)之间的映射. URLconf举例如下: 1 from django.conf.urls import url 2 3 from . import views

Django模块笔记【五】

入门笔记翻译整理自:https://docs.djangoproject.com/en/1.8/topics/ *该笔记将对各个模块进行单独介绍 *Class-based views 视图是接受请求并返回响应的可调用对象. 1. 用法举例 1 from django.conf.urls import url 2 from django.views.generic import TemplateView 3 4 urlpatterns = [ 5 url(r'^about/', TemplateV

Django学习笔记(四)—— Admin

疯狂的暑假学习之  Django学习笔记(四)-- Admin 参考:<The Django Book> 第6章 Django 可以使用admin自动创建管理界面. 1. 配置 django-admin.py startproject 创建的项目,如果没有注解掉默认的配置,python manage.py syncdb 创建用户后,直接 http://xxxxxx/admin 输入密码即可进入. 如果修改了配置文件,保证将 django.contrib.admin 加入setting.py 中

Python框架之Django学习笔记(十七)

Django框架之表单(续二) PS:本博客欢迎转发,但请注明博客地址及作者~ 博客地址:http://www.cnblogs.com/voidy/ <.)#)))≦ 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部分了,不过也够我们平时搭个简易的网站或者个人博客什么的.希望通过这一系列的博文,让大家也从中体会到Django框架的魅力所在,如果很不幸,你没有体会到,只能说明我水

Django 学习笔记(七)数据库基本操作(增查改删)

一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.py 5.同步数据 二.安装IPython方便debug sudo apt-get install ipython3 安装成功后用python manage.py shell 会自动进入Ipython交互解释器中,没有安装Ipython只有前两行代码,只进入到Python shell 中. Python 3.5

Django学习笔记(三)—— 模型 model

疯狂的暑假学习之 Django学习笔记(三)-- 模型 model 参考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # 用什么数据库管理系统 'NAME': '', # 数据库名称,如果用sqlite,要写完整路径 'USER': '', # 如果用sqlite,这个不用写 'PASSWORD': '', # 如果用sqlite,这个不用写