Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo agregar controles en Python Djang

Cómo agregar controles en Python Djang

1. Principio de configuración de archivos estáticos de Django

La configuración de archivos estáticos consiste en permitir que el servidor Django solicitado por el usuario encuentre los archivos estáticos devueltos.

En primer lugar, debemos entender algunos conceptos:

Archivos multimedia: archivos subidos por los usuarios

Archivos estáticos: css, js, imágenes, etc. .

Entorno de desarrollo: utilice el servidor integrado de Django para procesar archivos estáticos.

Entorno de producción: utilice el servidor apache2/nginx para procesar la asignación de archivos estáticos.

Por lo tanto, es muy importante distinguir entre el entorno de desarrollo y el entorno de producción, lo cual se explicará detalladamente más adelante.

A continuación se presenta el principio del servidor que busca archivos estáticos para que podamos configurarlo mejor.

1.django.contrib.staticfiles

django.contrib.staticfiles es una nueva aplicación en django1.3, que se utiliza para ayudar a los desarrolladores a administrar archivos estáticos como js y css.

Antes de django1.3, los archivos estáticos estaban controlados por MEDIA_URL y MEDIA_ROOT.

Para distinguir entre archivos multimedia y archivos estáticos cargados por los usuarios, django1.3 procesa archivos multimedia a través de la configuración MEDIA_XXX y procesa archivos estáticos a través de los elementos de configuración STATIC_XXX.

staticfiles permite a los desarrolladores distribuir archivos estáticos al directorio de la aplicación o a cualquier directorio especificado.

2. La diferencia entre los elementos de configuración MEDIA_XXX y STATIC_XXX

Los elementos de configuración MEDIA_XXX se utilizan para administrar archivos multimedia. Por lo general, se cargan mediante campos FileFields, se almacenan en el directorio especificado por settings.MEDIA_ROOT y se accede a ellos a través de la ruta especificada por settings.MEDIA_URL.

Los elementos de configuración STATIC_XXX se utilizan para administrar archivos estáticos. Estos archivos se recopilan en el directorio settings.STATIC_ROOT mediante el comando Manage.py Collectstatic y se accede a ellos a través de la ruta especificada por settings.STATIC_URL.

3. Elementos de configuración relacionados con archivos estáticos

El elemento de configuración STATIC_ROOT

se utiliza para especificar la ruta para almacenar archivos estáticos al ejecutar Manage.py Collectstatic. En un entorno generativo, centralizar los recursos estáticos es útil cuando se utiliza Lighttpd/Nginx/apache2 para alojar recursos estáticos. Para facilitar la depuración, la configuración suele ser la siguiente:

Copie el código de la siguiente manera:

SITE_ROOT = os.path.dirname(os.path.abspath(__file__))

SITE_ROOT = os.path.abspath(os.path.join(SITE_ROOT, './'))

STATIC_ROOT = os.path.join(SITE_ROOT, 'collectedstatic')

Elemento de configuración de STATIC_URL

Las plantillas de Django pueden hacer referencia a la variable {{STATIC_URL}} para evitar codificar la ruta.

admin:

Copia el código de la siguiente manera:

ADMIN_MEDIA_PREFIX = STATIC_URL 'admin/'

Usa STATIC_URL en la plantilla

Copia el codifique de la siguiente manera:

lt; link rel="stylesheet" href="{{ STATIC_URL }}css/core.css"gt

Entendiendo el principio, introduzcamos el desarrollo. entorno y entorno de producción La configuración específica de archivos estáticos en.

Mi versión de django es 1.4.21, esta versión es introducida.

Copia el código de la siguiente manera:

gt; gt; import django

gt; >

1.4.21

2. Entorno de desarrollo

La aplicación staticfiles está instalada por defecto en Django 1.4.21, por lo que acceder a archivos estáticos en el entorno de desarrollo no requiere ningún Modificación de la configuración de Django.

Una cosa: el orden en el que staticfiles en el entorno de desarrollo busca archivos estáticos depende del elemento de configuración STATIC_FINDERS, que está configurado por defecto

Copie el código de la siguiente manera:

STATICFILES_FINDERS = (

'django.contrib.staticfiles.finders.FileSystemFinder',

'django.contrib.staticfiles.finders.AppDirectoriesFinder',

# 'django.contrib.staticfiles.finders.DefaultStorageFinder',

)

FileStstemFinder se utiliza para buscar archivos estáticos adicionales en la ruta especificada por STATICFILES_DIRS, que está vacía por por defecto. Los archivos de recursos de uso común (como jquery, bootstrap, etc.) se usarán en muchas aplicaciones diferentes: STATICFILES_DIRS

AppDirectoriesFinder encontrará otros archivos estáticos en la ruta especificada por STATICFILES_DIRS

AppDirectoriesFinder busca archivos estáticos adicionales en las rutas especificadas por STATICFILES_DIRS de la tupla INSTALLED_APPS en el directorio estático del paquete donde se encuentra la aplicación para buscar archivos de recursos.

El modo de uso es el siguiente.

1. Cree un nuevo proyecto lxyproject

Copie el código de la siguiente manera:

[root@yl-web srv]# django-admin.py startproject lxyproject

p>

2. Cree una nueva aplicación llamada hello en el proyecto

Copia el código de la siguiente manera:

[root@yl-web lxyproject]# python Manage.py startapp hola

[root@yl-web lxyproject]# ls

hola lxyproject Manage.py

Cree un directorio estático para archivos estáticos bajo el hola aplicación.

Copia el código de la siguiente manera:

[root@yl-web hola]# mkdir static

[root@yl-web hola]# ls

__init__.py models.py static tests.py views.py

Luego cree un nuevo archivo estático hello.txt en el directorio estático.

Copia el código de la siguiente manera:

[root@yl-web hello]# cd static/

[root@yl-web static]# ls

hola.txt

[root@yl-web static]# cat hola.txt

Contenido de hola.txt: ¡¡¡Felicitaciones!!!!

3. Configure la aplicación de saludo en INSTALLED_APPS en el archivo settings.py del proyecto.

Copia el código de la siguiente manera:

INSTALLED_APPS = (

<). p> ...

'hola',

)

4. Ejecute el proyecto

Copia el código de la siguiente manera:

[root@yl-web lxyproject]# python managers.py runserver 0.0.0.0:9000

5. Acceso vía url

Crear un nuevo directorio de imágenes en el directorio estático, coloque la imagen oveja.png de la misma manera que accede a ella a través de la URL

6.