Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
django
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
django
Commits
c32fc79a
Kaydet (Commit)
c32fc79a
authored
Mar 04, 2013
tarafından
Tim Graham
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Fixed #19582 - Added a static files tutorial.
Thanks James Pic.
üst
9916e69b
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
141 additions
and
11 deletions
+141
-11
index.txt
docs/howto/static-files/index.txt
+0
-0
index.txt
docs/index.txt
+2
-1
index.txt
docs/intro/index.txt
+1
-0
reusable-apps.txt
docs/intro/reusable-apps.txt
+8
-4
tutorial05.txt
docs/intro/tutorial05.txt
+5
-6
tutorial06.txt
docs/intro/tutorial06.txt
+125
-0
No files found.
docs/howto/static-files.txt
→
docs/howto/static-files
/index
.txt
Dosyayı görüntüle @
c32fc79a
File moved
docs/index.txt
Dosyayı görüntüle @
c32fc79a
...
...
@@ -45,7 +45,8 @@ Are you new to Django or to programming? This is the place to start!
:doc:`Part 2 <intro/tutorial02>` |
:doc:`Part 3 <intro/tutorial03>` |
:doc:`Part 4 <intro/tutorial04>` |
:doc:`Part 5 <intro/tutorial05>`
:doc:`Part 5 <intro/tutorial05>` |
:doc:`Part 6 <intro/tutorial06>`
* **Advanced Tutorials:**
:doc:`How to write reusable apps <intro/reusable-apps>` |
...
...
docs/intro/index.txt
Dosyayı görüntüle @
c32fc79a
...
...
@@ -14,6 +14,7 @@ place: read this material to quickly get up and running.
tutorial03
tutorial04
tutorial05
tutorial06
reusable-apps
whatsnext
contributing
...
...
docs/intro/reusable-apps.txt
Dosyayı görüntüle @
c32fc79a
...
...
@@ -2,11 +2,11 @@
Advanced tutorial: How to write reusable apps
=============================================
This advanced tutorial begins where :doc:`Tutorial
5 </intro/tutorial05>` left
off. We'll be turning our Web-poll into a standalone Python package you can
reuse in new projects and share with other people.
This advanced tutorial begins where :doc:`Tutorial
6 </intro/tutorial06>`
left off. We'll be turning our Web-poll into a standalone Python package
you can
reuse in new projects and share with other people.
If you haven't recently completed Tutorials 1–
5
, we encourage you to review
If you haven't recently completed Tutorials 1–
6
, we encourage you to review
these so that your example project matches the one described below.
Reusability matters
...
...
@@ -67,6 +67,10 @@ After the previous tutorials, our project should look like this::
admin.py
models.py
tests.py
static/
style.css
images/
background.gif
templates/
polls/
detail.html
...
...
docs/intro/tutorial05.txt
Dosyayı görüntüle @
c32fc79a
...
...
@@ -640,10 +640,9 @@ information about testing.
What's next?
============
The beginner tutorial ends here for the time being. In the meantime, you might
want to check out some pointers on :doc:`where to go from here
</intro/whatsnext>`.
For full details on testing, see :doc:`Testing in Django
</topics/testing/index>`.
If you are familiar with Python packaging and interested in learning how to
turn polls into a "reusable app", check out :doc:`Advanced tutorial: How to
write reusable apps</intro/reusable-apps>`
.
When you're comfortable with testing Django views, read
:doc:`part 6 of this tutorial</intro/tutorial06>` to learn about
static files management
.
docs/intro/tutorial06.txt
0 → 100644
Dosyayı görüntüle @
c32fc79a
=====================================
Writing your first Django app, part 6
=====================================
This tutorial begins where :doc:`Tutorial 5 </intro/tutorial05>` left off.
We've built a tested Web-poll application, and we'll now add a stylesheet and
an image.
Aside from the HTML generated by the server, web applications generally need
to serve additional files — such as images, JavaScript, or CSS — necessary to
render the complete web page. In Django, we refer to these files as "static
files".
For small projects, this isn't a big deal, because you can just keep the
static files somewhere your web server can find it. However, in bigger
projects -- especially those comprised of multiple apps -- dealing with the
multiple sets of static files provided by each application starts to get
tricky.
That's what ``django.contrib.staticfiles`` is for: it collects static files
from each of your applications (and any other places you specify) into a
single location that can easily be served in production.
Customize your *app's* look and feel
====================================
First, create a directory called ``static`` in your ``polls`` directory. Django
will look for static files there, similarly to how Django finds templates
inside ``polls/templates/``.
Django's :setting:`STATICFILES_FINDERS` setting contains a list
of finders that know how to discover static files from various
sources. One of the defaults is ``AppDirectoriesFinder`` which
looks for a "static" subdirectory in each of the
:setting:`INSTALLED_APPS`, like the one in ``polls`` we just created. The admin
site uses the same directory structure for its static files.
Within the ``static`` directory you have just created, create another directory
called ``polls`` and within that create a file called ``style.css``. In other
words, your stylesheet should be at ``polls/static/polls/style.css``. Because
of how the ``AppDirectoriesFinder`` staticfile finder works, you can refer to
this static file in Django simply as ``polls/style.css``, similar to how you
reference the path for templates.
.. admonition:: Static file namespacing
Just like templates, we *might* be able to get away with putting our static
files directly in ``polls/static`` (rather than creating another ``polls``
subdirectory), but it would actually be a bad idea. Django will choose the
first static file it finds whose name matches, and if you had a static file
with the same name in a *different* application, Django would be unable to
distinguish between them. We need to be able to point Django at the right
one, and the easiest way to ensure this is by *namespacing* them. That is,
by putting those static files inside *another* directory named for the
application itself.
Put the following code in that stylesheet (``polls/static/polls/style.css``):
.. code-block:: css
li a {
color: green;
}
Next, add the following at the top of ``polls/templates/polls/index.html``:
.. code-block:: html+django
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" />
``{% load staticfiles %}`` loads the :ttag:`{% static %} <staticfiles-static>`
template tag from the ``staticfiles`` template library. The ``{% static %}``
template tag generates the absolute URL of the static file.
That's all you need to do for development. Reload
``http://localhost:8000/polls/`` and you should see that the poll links are
green (Django style!) which means that your stylesheet was properly loaded.
Adding a background-image
=========================
Next, we'll create a subdirectory for images. Create an ``images`` subdirectory
in the ``polls/static/polls/`` directory. Inside this directory, put an image
called ``background.gif``. In other words, put your image in
``polls/static/polls/images/background.gif``.
Then, add to your stylesheet (``polls/static/polls/style.css``):
.. code-block:: css
body {
background: white url("images/background.gif") no-repeat right bottom;
}
Reload ``http://localhost:8000/polls/`` and you should see the background
loaded in the bottom right of the screen.
.. warning::
Of course the ``{% static %}`` template tag is not available for use in
static files like your stylesheet which aren't generated by Django. You
should always use **relative paths** to link your static files between each
other, because then you can change :setting:`STATIC_URL` (used by the
:ttag:`static` template tag to generate its URLs) without having to modify
a bunch of paths in your static files as well.
These are the **basics**. For more details on settings and other bits included
with the framework see
:doc:`the static files howto </howto/static-files>` and the
:doc:`the staticfiles reference </ref/contrib/staticfiles>`. :doc:`Deploying
static files </howto/static-files/deployment>` discusses how to use static
files on a real server.
What's next?
============
The beginner tutorial ends here for the time being. In the meantime, you might
want to check out some pointers on :doc:`where to go from here
</intro/whatsnext>`.
If you are familiar with Python packaging and interested in learning how to
turn polls into a "reusable app", check out :doc:`Advanced tutorial: How to
write reusable apps</intro/reusable-apps>`.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment