Найти - Пользователи
Полная версия: Кеширование... ??? Непонятно настройки джанги
Начало » Django » Кеширование... ??? Непонятно настройки джанги
1
ilganas
Доброго времени суток…
=================
Сервер Ubuntu 8.04 Server x86
Apache + Mod_WSGI
Python 2.5.2
Django 1.1
==================
Вот файл django.wsgi
————————–
import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
os.environ['DJANGO_SETTINGS_MODULE'] = 'asu.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
===========================
Вот настройки виртуального хоста
———————————-
        WSGIScriptAlias / /home/www/asu/django.wsgi

WSGIDaemonProcess asu user=webby group=www-data processes=5 threads=1
WSGIProcessGroup asu

Alias /robots.txt /home/www/asu/static/robots.txt
Alias /favicon.ico /home/www/asu/static/favicon.ico

AliasMatch /([^/]*\.css) /home/www/asu/static/styles/$1
Alias /media/ /home/www/asu/static/media/
<Directory /home/www/asu/static>
Order deny,allow
Allow from all
</Directory>

<Directory /home/www/asu/>
Order allow,deny
Allow from all
</Directory>
=============================
Проблема заключается в следующем
Я в app под названием indx(для примера)
Выполняю системную команду os.system(….) результат пишу в файл
Файл открываю, читаю… Результат которой я парсю и записываю в словарь …

И соответственно подставляю в вывод…
====================================
Так вот в чём проблема
Django кеширует(или не django)… И у меня не обновляются данные, если
Все время тыкать F5 то могут подставляться значения иногда до 3х предыдущих
сформированных данных
После перезагрыза сервака
Первое обращение к функции нормальное, а потом опять подставляются значения…
=========

Помогите не могу разобраться дело в django или в настройках сервака

P.S.
Django Cache в сетингах не указан…
Файл закрываю после использования
В мета добавил значения чтобы не браузер не кешировал страницу…
вот так
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-store" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="2010-01-19 16:08:19.895906" />
P.S. 2
Проверил python manage.py runserver 0.0.0.0:8080
Тоже самое, наверное это не АПАЧ :(, тогда совсем не понятно Джанга?
Александр Кошелев
Где код?
ilganas
Daevaorn
Где код?
Вот шаблон:
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-store" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="{{ nowtime }}" />
<title>Статистика...</title>
<style type="text/css">
<!--
.fff {
font-family: Arial, Helvetica, sans-serif;
background-image: url('/media/1304.png');
font-weight: bold;

}
-->
</style></head>
<body class="fff">

<div>
<p align="center"><h2 align="center">Статистика </h2></p>
<p align="center">Время на сервере: {{ nowtime }} </p>
<hr>
</div>
<p>

{% for key,value in dictt.items %}
<h4>ПК:<font color="red"> {{ key }}</font></h4>
<ul>
{% for val in value %}
<li><font color="blue" size=2> {{ val }}</font></li>
{% endfor %}
</ul>

{% endfor %}

</p>
<p>&nbsp;</p>

</body>
</html>
================
Вот сам код Вьюхи
# -*- coding: utf-8 -*-
from django.template import Template, Context
from django.http import HttpResponse
from datetime import datetime

import sys,os
from pyparsing import *

#Вот здесь выполняю команду и записываю в файл
os.system("команда системная > /home/www/asu/ip.n.f")


nbr = Combine(Word(nums,max=2)+':')
fstr = Literal('File:')

nammez = Combine(Word(printables))

name_off = Suppress(nbr|fstr)+nammez


ftoparse = open('/home/www/asu/ip.n.f',"r")


dict_main = {}



for x in ftoparse:
try:
fstr.parseString(x)
list_values.append(name_off.parseString(x)[0])
dict_main[key_name] = list_values

except:
list_values = []
key_name = name_off.parseString(x)[0]
if dict_main.has_key(key_name):
pass
else:
dict_main[key_name] = ''
sss = ''

#Закрываю файл
ftoparse.close()

fp = open('/home/www/asu/static/media/in.html')
t = Template(fp.read())
fp.close()
#Навсякий пожарный удаляю
os.system("rm -f /home/www/asu/ip.n.f")

html = t.render(Context({'dictt':dict_main,'nowtime':datetime.now()}))

def list_uupr(request):
return HttpResponse(html)
Не судите строго…
Александр Кошелев
Вы разбираетее файл и генерируете html на уровне модуля. Этот код исполняется один раз при импорте модуля. Делайте это непосредственно во вьюхе, тогда получите ожидаемый результат.
ilganas
Daevaorn
Вы разбираетее файл и генерируете html на уровне модуля. Этот код исполняется один раз при импорте модуля. Делайте это непосредственно во вьюхе, тогда получите ожидаемый результат.
Зпасибо я понял…

Всё получилось
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB