Django 1.0 Template Development. A practical guide to Django template development with custom tags, filters, multiple templates, caching, and more - Helion
ebook
Autor: Scott Newman, Jacob Kaplan-MossTytuł oryginału: Django 1.0 Template Development. A practical guide to Django template development with custom tags, filters, multiple templates, caching, and more
ISBN: 9781847195715
stron: 272, Format: ebook
Data wydania: 2008-12-11
Księgarnia: Helion
Cena książki: 129,00 zł
Osoby które kupowały "Django 1.0 Template Development. A practical guide to Django template development with custom tags, filters, multiple templates, caching, and more", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Scrum. O zwinnym zarządzaniu projektami. Wydanie II rozszerzone 58,64 zł, (12,90 zł -78%)
- Od hierarchii do turkusu, czyli jak zarządzać w XXI wieku 58,64 zł, (12,90 zł -78%)
Spis treści
Django 1.0 Template Development. A practical guide to Django template development with custom tags, filters, multiple templates, caching, and more eBook -- spis treści
- Django 1.0 Template Development
- Table of Contents
- Django 1.0 Template Development
- Credits
- About the Author
- About the Reviewers
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code for the book
- Errata
- Piracy
- Questions
- 1. An Introduction to the Django Template System
- What are templates?
- Understanding the need for templates
- Overview of the Django template system
- Separating code from presentation
- Helping designers and developers collaborate
- Increasing maintainability
- Template syntax
- Modularity and reusability
- Flexibility
- Limitations
- Critics of the system
- Exploring how Django handles requests
- Understanding the template system syntax
- Context variable
- Variables
- Filters
- Tags
- Comments
- Code note: Python dictionaries
- How invalid variables are handled
- Creating our demo application
- Starting our application
- Adding templates to our application
- Adding variables to the view
- Moving the logic into a separate template file
- Using template filters
- Using template tags to perform logical tests
- Adding comments
- Summary
- What are templates?
- 2. Views, URLs, and Generic Views
- An overview
- Creating the application
- Create the data model
- Create the admin file
- Configure the URLs
- Add data in the admin application
- Mapping URLs to views
- Handling unmatched URL patterns
- Splitting up the URL configurations
- Creating views
- Accepting the request object
- Responding with an HTTP response
- Responding with an exception
- Putting the views together
- Building the basic view
- Cleaning up the error handling
- Adding the template files
- Adding the template to the view
- Creating the list view and template
- Using generic views to shorten development time
- Simple generic views
- Loading a template directly
- Redirecting URLs
- List/detail generic views
- Replacing the list view
- Replacing the detail view
- Using the other generic views
- Comparing views and generic views
- Summary
- 3. Template Context
- The context explained
- Practicing working with the context
- Using locals for prototyping
- Adding, changing, and removing items in the context
- Using the context values in your templates
- Preventing method execution from templates
- Handling invalid context variables
- Cleaning up the view
- Context rendering shortcuts
- Using render_to_response()
- Using render_to_string()
- Context processors
- Exploring the default context processors
- Auth
- Debug
- Media
- il8n
- Configuring your project to use context processors
- Configuring your views to use context processors
- Using render_to_response with RequestContext
- Using the context processors in our project
- Writing your own context processor
- Exploring the default context processors
- Summary
- The context explained
- 4. Using the Built-In Tags and Filters
- Built-in filter reference
- add
- addslashes
- capfirst
- center
- cut
- date
- default
- default_if_none
- dictsort
- dictsortreversed
- divisibleby
- escape
- escapejs
- filesizeformat
- first
- fix_ampersands
- floatformat
- force_escape
- get_digit
- iriencode
- join
- last
- length
- length_is
- linebreaks
- linebreaksbr
- linenumbers
- ljust
- lower
- make_list
- phone2numeric
- pluralize
- pprint
- random
- removetags
- rjust
- safe
- slice
- slugify
- stringformat
- striptags
- time
- timesince
- timeuntil
- title
- truncatewords
- truncatewords_html
- unordered_list
- upper
- urlencode
- urlize
- urlizetrunc
- wordcount
- wordwrap
- yesno
- Built-in tag reference
- autoescape
- block
- comment
- cycle
- debug
- extends
- filter
- firstof
- for
- forloop
- if
- ifchanged
- ifequal
- ifnotequal
- include
- load
- now
- regroup
- spaceless
- ssi
- templatetag
- url
- widthratio
- with
- Summary
- Built-in filter reference
- 5. Loading and Inheriting Templates
- Configuring the template system
- Finding a home for the template files
- Working with the template loaders
- Loading templates manually
- Choosing a template loader
- Using the filesystem loader
- Using the application directories loader
- About the eggs template loader
- Using the loaders together
- Loading your template files
- Setting up the error handling templates
- Creating the error templates
- Testing the error templates
- Breaking templates into reusable pieces
- Extending templates with inheritance
- Using the block tag
- Extending templates
- Adding inheritance to the press application
- Using multiple block tags
- Adding template inheritance to our press release list
- Inheriting from multiple child templates
- Appending to blocks
- Template strategy
- Creating content placeholders
- Extra JS
- Extra style
- Extra head content
- Extra body tag attributes
- Creating content placeholders
- Using include files
- Using include
- Using SSI
- Using include
- Summary
- 6. Serving Multiple Templates
- Considering the different approaches
- Serving mobile devices
- Adapting content
- Setting up our example
- Serving printable pages
- Creating site themes
- Testing the template overrides
- Serving different templates by domain name
- Serving different sites with the development web server
- Redirecting users to the mobile site (optional)
- Detecting mobile devices
- Writing the middleware
- Checking only once
- Installing the middleware
- Summary
- Considering the different approaches
- 7. Custom Tags and Filters
- Examining the built-in tags and filters
- Template filters
- Template tags
- Writing your own template filters
- Setting up a test application
- Creating a home for our filter library
- Template filter syntax
- Loading template libraries
- U.S. currency filter
- Replace profanities filter
- Filters that expect strings
- In-list filter
- Writing your own template tags
- Creating another sample application
- Adding the template library
- Template tag syntax
- A simple tag example
- The compilation function
- The template node subclass
- Registering our custom tag
- All work and no play tag
- Passing a template variable to a tag
- Modifying the context through a tag
- Summary
- Examining the built-in tags and filters
- 8. Pagination
- An Overview
- Verifying our application setup
- Verifying the application
- Verifying the configuration
- Verifying the URL configuration
- Verifying the model
- Verifying the view
- Adding test records
- Exploring pagination using the Django shell
- Examining database performance
- Allowing for empty result sets
- Preventing orphaned records
- Using pagination in your views
- Creating the view
- Retrieving the current position from the URL
- Putting navigation into the templates
- Pagination with generic views
- Setting up our generic list view
- Generically calling the last page
- Summary
- 9. Customizing the Admin Look and Feel
- Overriding the admin templates
- Leveraging the template loader
- Locating the admin template files
- Exploring the admin template files
- Inspecting the base.html template
- Inspecting the base_site.html template
- Inspecting the index.html template
- Inspecting the change_list.html template
- Inspecting the change_form.html template
- Customizing the admin header
- Replacing the page title
- Changing the header text
- Adding a new link box to the admin
- Overriding the admin index file
- Creating the include file
- Customizing the admin color scheme
- Identifying styles to change
- Using the extrastyle block
- Summary
- Overriding the admin templates
- 10. Caching Your Pages
- An overview
- Do you need caching?
- How caching works
- Exploring the available cache systems
- Filesystem caching
- Database caching
- Memcached
- Local memory caching
- Dummy caching
- Setting up your cache system
- Configuring the cache backend
- Database caching
- Filesystem caching
- Local memory caching
- Dummy caching
- Memcached
- Adding additional backend arguments
- Setting up for the examples
- Configuring the cache backend
- Caching individual views
- Adding caching
- Caching pieces of templates
- Low-level caching
- Caching your whole site
- Preventing data from being cached
- General caching strategies
- Working with outside caches
- Summary
- An overview
- 11. Internationalization
- Exploring i18n
- Creating an example application
- Configuring your project for i18n
- Installing libraries for i18n translation
- Marking strings as translatable
- Creating message files
- Enabling automatic language preference
- How Django determines language preference
- Summary
- Index