title: django name render is not defined
body: <p>I have an error when I try to import render in my program and I fear it is because it is not supported in <code>django 1.9</code>.
  I am using <code>python 3.4</code> and <code>django 1.9</code>.
  When I try to run my server, I have the error:</p>
  
  <blockquote>
    <p>ImportError: cannot import name render`.</p>
  </blockquote>
  
  <p>Here is my code:</p>
  
  <p>blog/views:</p>
  
  <pre><code>from datetime import datetime
  from django.shortcuts import render
  
  def date_actuelle(request):
      return render(request, 'blog/date.html', {'date': datetime.now()})
  
  
  def addition(request, nombre1, nombre2):   
      total = int(nombre1) + int(nombre2)
  
      # Retourne nombre1, nombre2 et la somme des deux au tpl
      return render(request, 'blog/addition.html', locals())
  </code></pre>
  
  <p>blog/urls:</p>
  
  <pre><code>from django.conf.urls import url, patterns
  from . import views
  
  urlpatterns = [
    #  url(r'^accueil/$', views.home),
    #  url(r'^article/(?P&lt;id_article&gt;\d+)$', views.view_article),
    #  url(r'^article/(?P&lt;year&gt;\d{4})/(?P&lt;month&gt;\d{2})$', views.list_articles),
    #  url(r'^redirection$', views.view_redirection),
      url(r'^date/$', views.date_actuelle),
      url(r'^addition/(?P&lt;nombre1&gt;\d+)/(?P&lt;nombre2&gt;\d+)/$', views.addition),
  ]
  </code></pre>
  
  <p>creps_bretonnes.urls:</p>
  
  <pre><code>from django.conf.urls import patterns, include, url
  from django.contrib import admin
  from blog import views
  urlpatterns = [
      url(r'^blog/', include('blog.urls')),
  ]
  </code></pre>
  
  <p>I  have also tried from django.shortcuts import *, then the server is launched but when I try to access the page it says NameError: name 'render' is not defined.
  Would you have an idea?</p>
  
  <p>What is written on the server when I run it:</p>
  
  <p><a href="http://i.stack.imgur.com/uV2dC.jpg" rel="nofollow">cmd values when trying to run the server with from django.shortcuts import render</a></p>
  
  <p>traceback when using from django.shortcuts import * and trying to access    localhost:8000/blog/date</p>
  
  <pre><code>Environment:
  
  
  Request Method: GET
  Request URL: http://localhost:8000/blog/date/
  
  Django Version: 1.9.7
  Python Version: 3.4.4
  Installed Applications:
  ['django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles']
  Installed Middleware:
  ['django.middleware.security.SecurityMiddleware',
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.common.CommonMiddleware',
   'django.middleware.csrf.CsrfViewMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
   'django.contrib.messages.middleware.MessageMiddleware',
   'django.middleware.clickjacking.XFrameOptionsMiddleware']
  
  
  
  Traceback:
  
  File "C:\Python34\lib\site-packages\django\core\handlers\base.py" in             get_response
    149.                     response = self.process_exception_by_middleware(e, request)
  
  File "C:\Python34\lib\site-packages\django\core\handlers\base.py" in get_response
    147.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
  
  File "C:\Users\sperney\Documents\Travail\creps_bretonnes\blog\views.py" in date_actuelle
    37.     return render(request, 'blog/date.html', {'date': datetime.now()})
  
  Exception Type: NameError at /blog/date/
  Exception Value: name 'render' is not defined
  </code></pre>
  
  <p>here it is:</p>
  
  <pre><code>    """
  This module collects helper functions and classes that "span" multiple levels
  of MVC. In other words, these functions/classes introduce controlled coupling
  for convenience's sake.
  """
  
  from django.template import loader
  from django.http import HttpResponse, Http404
  from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
  from django.db.models.manager import Manager
  from django.db.models.query import QuerySet
  from django.core import urlresolvers
  
  def render_to_response(*args, **kwargs):
      """
      Returns a HttpResponse whose content is filled with the result of calling
      django.template.loader.render_to_string() with the passed arguments.
      """
      httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)}
      return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
  
  def redirect(to, *args, **kwargs):
      """
      Returns an HttpResponseRedirect to the apropriate URL for the arguments
      passed.
  
      The arguments could be:
  
          * A model: the model's `get_absolute_url()` function will be called.
  
          * A view name, possibly with arguments: `urlresolvers.reverse()` will
            be used to reverse-resolve the name.
  
          * A URL, which will be used as-is for the redirect location.
  
      By default issues a temporary redirect; pass permanent=True to issue a
  permanent redirect
      """
      if kwargs.pop('permanent', False):
          redirect_class = HttpResponsePermanentRedirect
      else:
          redirect_class = HttpResponseRedirect
  
      # If it's a model, use get_absolute_url()
      if hasattr(to, 'get_absolute_url'):
          return redirect_class(to.get_absolute_url())
  
      # Next try a reverse URL resolution.
      try:
          return redirect_class(urlresolvers.reverse(to, args=args, kwargs=kwargs))
      except urlresolvers.NoReverseMatch:
          # If this is a callable, re-raise.
          if callable(to):
              raise
          # If this doesn't "feel" like a URL, re-raise.
          if '/' not in to and '.' not in to:
              raise
  
      # Finally, fall back and assume it's a URL
      return redirect_class(to)
  
  def _get_queryset(klass):
      """
      Returns a QuerySet from a Model, Manager, or QuerySet. Created to make
      get_object_or_404 and get_list_or_404 more DRY.
      """
      if isinstance(klass, QuerySet):
          return klass
      elif isinstance(klass, Manager):
          manager = klass
      else:
          manager = klass._default_manager
      return manager.all()
  
  def get_object_or_404(klass, *args, **kwargs):
      """
      Uses get() to return an object, or raises a Http404 exception if the object
      does not exist.
  
      klass may be a Model, Manager, or QuerySet object. All other passed
      arguments and keyword arguments are used in the get() query.
  
      Note: Like with get(), an MultipleObjectsReturned will be raised if more     than one
      object is found.
      """
      queryset = _get_queryset(klass)
      try:
          return queryset.get(*args, **kwargs)
      except queryset.model.DoesNotExist:
          raise Http404('No %s matches the given query.' %     queryset.model._meta.object_name)
  
  def get_list_or_404(klass, *args, **kwargs):
      """
      Uses filter() to return a list of objects, or raise a Http404 exception if
      the list is empty.
  
      klass may be a Model, Manager, or QuerySet object. All other passed
      arguments and keyword arguments are used in the filter() query.
      """
      queryset = _get_queryset(klass)
      obj_list = list(queryset.filter(*args, **kwargs))
      if not obj_list:
          raise Http404('No %s matches the given query.' %     queryset.model._meta.object_name)
      return obj_list
  </code></pre>
  
  <p>Thanks a lot</p>