рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ

рдПрдХ рдЖрджрдореА рдмреИрдарддрд╛ рд╣реИ, рд░реЗрдбрд┐рдпреЛ рд╕реБрдирддрд╛ рд╣реИред

- рдореЙрд╕реНрдХреЛ рдореЗрдВ рдЖрдзреА рд░рд╛рдд рдХреЛ, рдмреНрд▓рд╛рдЧреЛрд╡реЗрд╢реНрдЪреЗрдВрд╕реНрдХ рдореЗрдВ рд╕реБрдмрд╣ 6 рдмрдЬреЗ, рд╡реНрд▓рд╛рджрд┐рд╡реЛрд╕реНрддреЛрдХ рдореЗрдВ 7 рдмрдЬреЗ, рдЦрд╛рдмрд░реЛрд╡рд╕реНрдХ, рдпрд╛рдЬрд╝реНрдиреЛ-рд╕рдЦрд╛рд▓рд┐рдВрд╕реНрдХ, рдордЧрд╛рджрд╛рди рдореЗрдВ 8 рдШрдВрдЯреЗ, рдФрд░ рдкреЗрдЯреНрд░реЛрдкрд╛рд╡рд▓реЛрд╡реНрд╕реНрдХ-рдХрд╛рдордЪреИрдЯрд╕реНрдХреА рдореЗрдВ 9 рдШрдВрдЯреЗред

рдПрдХ рдЖрджрдореА рдмреИрдарддрд╛ рд╣реИ, рдмреИрдарддрд╛ рд╣реИ, рдлрд┐рд░ рдЙрдарддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдЕрдлрд╕реЛрд╕ рдХреЗ рд╕рд╛рде рдХрд╣рддрд╛ рд╣реИ:

- рдУрд╣, рдареАрдХ рд╣реИ, рд╣рдорд╛рд░реЗ рджреЗрд╢ рдореЗрдВ рдПрдХ рдЧрдбрд╝рдмрдбрд╝!



рдкрд╛рда рдХреЛ рдордпрдВрдХ рдХреЙрд▓рдЧрд┐рди рдХреА рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: рдкреЗрдЯреНрд░реЛрдкрд╛рд╡рд▓реЛрд╡реНрд╕реНрдХ-рдХрд╛рдордЪрддреНрд╕реНрдХреА рдореЗрдВ, рдЕрдм рдпреВрдЯреАрд╕реА +11 (рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ рдпреВрдЯреАрд╕реА + 12 рдореЗрдВ), рдЗрд╕рд▓рд┐рдП рдЕрдм рдордзреНрдпрд░рд╛рддреНрд░рд┐ рдорд╛рд╕реНрдХреЛ рд╕рдордп рдореЗрдВ 9 рдирд╣реАрдВ рдмрд▓реНрдХрд┐ 8 рдШрдВрдЯреЗ рд╣реЛрдВрдЧреЗред



рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░, рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдЬреАрдПрдордЯреА рд╕рдордп, рд╕рд░реНрд╡рд░ рд╕рдордп рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред



рдЕрдХреНрд╕рд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реВрдЪреА рд╕реЗ рдЕрдкрдирд╛ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдЪреБрдирдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЕрд╡рд╕рд░ рд╕реБрдЦрдж рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдпрджрд┐ рд╕рд╛рдЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ - рдмрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ UTC рд╕реЗ рд╕реНрдерд╛рдиреАрдп рд╕рдордп рдФрд░ рдЗрдВрдбреЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ XMLHttpRequest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рд░реНрд╡рд░ рдХреЛ рдпрд╣ рдЗрдВрдбреЗрдВрдЯ рдкрд╛рд╕ рдХрд░реЗрдВред





рдЖрдЧреЗ рдмрдврд╝реЛ, рдХреЛрд╢рд┐рд╢ рдХрд░реЛ





рдПрдХ рдирдпрд╛ Django рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред рдЪрд▓реЛ рдЗрд╕реЗ рдЯреИрдк - рдЯрд╛рдЗрдордЬрд╝реЛрди рдкреНрд░рдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╣рддреЗ рд╣реИрдВред



django-admin startproject рдЯреИрдк рдХрд░реЗрдВ



рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛрдбрд╝реЗрдВред



рд╕реАрдбреА рдЯреЗрдк /

рдЕрдЬрдЧрд░ рдкреНрд░рдмрдВрдзрди рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдХреЛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛



рдЕрдм рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЦреЛрд▓реЗрдВ рдФрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

рдЖрдпрд╛рдд os

SITE_ROOT = os.path.dirname (os.path.realpath (__ file__))



рдЕрдм рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

TEMPLATE_DIRS = (

os.path.join (SITE_ROOT, 'рдЯреЗрдореНрдкреНрд▓реЗрдЯ'),

)



рдФрд░ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

INSTALLED_APPS = (

'Django.contrib.auth',

'Django.contrib.contenttypes',

'Django.contrib.sessions',

'Django.contrib.sites',

'Django.contrib.messages',

# рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рд░рджреНрдж рдХрд░реЗрдВ:

# 'django.contrib.admin',

'Whattimeisit',

)



рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднреА рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ:

DATABASES = {

'рдбрд┐рдлрд╝реЙрд▓реНрдЯ': {

'рдЗрдВрдЬрди': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3 рдпрд╛' oracle 'ред

рдпрджрд┐ 'sqlite3' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ 'NAME': 'database', # рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╛рдЗрд▓ рдХрд╛ рдкрдеред

}

}



рдФрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдЬреЛ рд╣рдордиреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред



mkdir рдЯреЗрдореНрдкреНрд▓реЗрдЯ /



рдФрд░ syncdb рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред



python manage.py syncdb



рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, index.html рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдПрдВред



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title></title>

<script type="text/javascript" src="/static/jquery-1.4.2.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){

var time_zone = (new Date().getTimezoneOffset()/60)*(-1);

var dateoffset = time_zone*60*60*1000;

$('span.please_parse').each(function() {

var date = new Date($(this).text());

date.setTime(date.getTime() + dateoffset);

$(this).text(date.toLocaleString());

});

$.post('/please_set_timezone', { 'offset': time_zone });

});

</script>

</head>

<body>

<p>

{% if local_time %}

<b>{{ local_time }}</b>.

{% else %}

<b><span class="please_parse">{{ time }}</span></b>.

{% endif %}

</p>

</body>

</html>









рдЕрдм рд╕реНрдЯреИрдЯрд┐рдХ рдлрд╛рдЗрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдПрдВред



mkdir рдореАрдбрд┐рдпрд╛ /



urls.py рдЕрдВрдд рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:



from django.conf.urls.defaults import *

import os

from settings import SITE_ROOT



# Uncomment the next two lines to enable the admin:

# from django.contrib import admin

# admin.autodiscover()



urlpatterns = patterns('',

# Example:

# (r'^tep/', include('tep.foo.urls')),



# Uncomment the admin/doc line below and add 'django.contrib.admindocs'

# to INSTALLED_APPS to enable admin documentation:

# (r'^admin/doc/', include('django.contrib.admindocs.urls')),



# Uncomment the next line to enable the admin:

# (r'^admin/', include(admin.site.urls)),



(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.join(SITE_ROOT, 'media')}),



(r'^$', 'whattimeisit.views.index'),

(r'^please_set_timezone$', 'whattimeisit.views.please_set_timezone'),

)









рдЖрдкрдХреЛ jQuery рдХреЛ рдореАрдбрд┐рдпрд╛ / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ jquery-1.4.2.min.js рдХреЛ рдмрдЪрд╛рдпрд╛ред



рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ view.py



# Create your views here.



from django.http import HttpResponse, HttpResponseRedirect

from django.core.urlresolvers import reverse

from django.shortcuts import render_to_response

from datetime import datetime

from datetime import timedelta



def please_set_timezone(request):

if request.is_ajax():

timezone_offset = request.POST.get('offset', False)

if timezone_offset:

request.session['timezone_offset'] = timezone_offset

message = "OK"

return HttpResponse(message)

return HttpResponseRedirect(reverse('whattimeisit.views.index'))



def index(request):

time = datetime.utcnow()

timezone_offset = request.session.get('timezone_offset', False)

if timezone_offset:

offset = timedelta(hours=int(timezone_offset))

local_time = time+offset

local_time_string = local_time.strftime("%d.%m.%Y %H:%M:%S")

else:

local_time_string = False

time_string = time.strftime("%m/%d/%Y %H:%M:%S")

return render_to_response("index.html", {'time': time_string, 'local_time': local_time_string,})









рд╡рд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддреИрдпрд╛рд░ рд╣реИред рдЕрдм рдЖрдк рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред



рдЕрдЬрдЧрд░ рдкреНрд░рдмрдВрдзрди Oracle рдЪрд▓рд╛рдиреЗрд╡рд╛рд▓рд╛



рд▓реЗрдХрд┐рди рддреБрд░рдВрдд рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░ред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЪрдпрди рдХреЗ рд▓рд┐рдП рджреЗрд╢реЛрдВ рдФрд░ рд╢рд╣рд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЫреЛрдЯрд╛ рдХрд░реЗрдВред рдмреЗрд╢рдХ, рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде - рдЪреВрдВрдХрд┐, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реНрд╡рдЪрд╛рд▓рди рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕рдордп рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рджреЗрд╢ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рджреЗрд╢ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд╢рд╣рд░ред



рдпрд╣ рддрд░реАрдХрд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдХреАрдЬрд╝ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рднреА рдЙрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдордп рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреБрдХреАрдЬрд╝ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рджреВрд╕рд░реЗ рдкреГрд╖реНрда рд╕реЗ рд╕рд░реНрд╡рд░ рдЦреБрдж рдЙрд╕реЗ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рддрд╛рд░реАрдЦ рджреЗрдЧрд╛ред




All Articles