django-forms form - Wie verwende ich CSS in Django?




hidden field (6)

Ich erstelle meine Anwendung mit Django und frage mich, wie ich Django dazu bringen kann, meine CSS-Datei zu verwenden. Welche Einstellungen muss ich machen, damit Django die CSS-Datei sehen kann?

NB: Auf einem lokalen Computer


Answers

Wenn Sie den Entwicklungsserver verwenden, befolgen Sie die Anleitungen des django-Projekts zum Verwalten statischer Dateien, um Ihre URLs einzurichten , und verweisen Sie dann auf Ihre Mediendateien in der Vorlage - z. B. ein Bild in einem /site_media/images/foo.gif von /site_media/images/foo.gif .


Nun, der einfachste Weg, CSS mit Django zu verwenden, besteht darin, es Ihren Templates als statische Dateien hinzuzufügen.

Aber es ist ein bisschen wie Ajax, ich habe nichts gefunden, was sagt, wie man es auf eine Standard-Art einbezieht.

Es gibt ein css-compressor Modul für Django, wenn Sie seine Größe optimieren möchten.



Das hat mir auch einige Zeit Probleme bereitet (404 Fehler nicht gefunden). Das fehlende Bit für mich war, das STATICFILES_DIRS Tupel in settings.py zu bearbeiten, um mir folgendes zu geben:

STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)

Dies nahm dann meine CSS-Dateien in einem Ordner namens 'media' auf, der auf der obersten Ebene meines django-Projekts war.

Ich hatte auch:

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'

( STATIC_URL Sie sicher, dass Sie in STATIC_URL die führende / über) haben

Natürlich müssen Sie, wie oben erwähnt, die CSS-Datei ordnungsgemäß in Ihre HTML-Dateien einfügen. Ich hatte:

<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />

Welche Einstellungen muss ich machen, damit Django die CSS-Datei sieht?

Keiner.

Stellen Sie sicher, dass Ihre Vorlage die CSS-Datei enthält (wie es Standard-HTML tut) und legen Sie die CSS-Datei auf dem Medienserver ab.

Zur Klärung: Mit Django wird dringend empfohlen, dass Sie alle Ihre Medien (alles, was kein dynamisches HTML ist) von einer anderen Serverinstanz aus bedienen. Wie Sie das implementieren, liegt ganz bei Ihnen, aber die meisten Leute erstellen eine Subdomain.


Hier ist ein Hack, der pointer-events mit hover :

<!doctype html>
<html>
	<head>
		<title></title>
		<style>
/* accessory */
.parent {
	width: 200px;
	height: 200px;
	background: gray;
}
.parent, 
.selector {
	display: flex;
	justify-content: center;
	align-items: center;
}
.selector {
	cursor: pointer;
	background: silver;
	width: 50%;
	height: 50%;
}
		</style>
		<style>
/* pertinent */
.parent {
	background: gray;
	pointer-events: none;
}
.parent:hover {
	background: fuchsia;
}
.parent 
.selector {
	pointer-events: auto;
}
		</style>
	</head>
	<body>
		<div class="parent">
			<div class="selector"></div>
		</div>
	</body>
</html>





css django django-forms