Разработка архитектуры закрытой корпоративной сети с использованием фреймворка Django

Анализ корпоративных сетей, определение их преимуществ и недостатков: ASmallWorld, Decayenne и Evrika. Структура web-приложения, методика и принципы его разработки, оценка практической эффективности. База данных и административная, логическая часть.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 03.02.2015
Размер файла 837,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

date_of_publication = models. DateTimeField (verbose_name=u'Дата публикации новости', blank=True, null=True, default = datetime.datetime.now)

text = SplitField (u'Текст', blank=True)

tags = models. ManyToManyField (Tags, verbose_name=u'Теги', blank=True)

def __unicode__(self):

return u' % s'% (self.zagol,)

class Meta:

verbose_name = u "Блог»

verbose_name_plural = u "Блог»

class Comment (models. Model):

blog=models. ForeignKey (Blog, verbose_name=u'От какого блога', related_name='link_blog', blank=True, null=True)

author_name=models. CharField (u «Автор», max_length=120, blank=True)

text=models. TextField (u'Комментарий', blank=True)

pub_date=models. DateTimeField (u'Дата публикации', default = datetime.datetime.now, blank=True)

admin_comment=models. BooleanField (u'Допущена администратором', default=False, blank=True)

def __unicode__(self):

return self.author_name

def count_comment(self):

return Comment.objects.filter (article=self.article).count()

class Meta:

verbose_name = u "Комментарий»

verbose_name_plural = u "Комментарии»

ordering=['pub_date',]

Файл admin.py для приложения blog:

# -* - encoding: utf-8 -*-

from django.contrib import admin

from.models import Blog, Comment, Tags

class BlogAdmin (admin. ModelAdmin):

list_display = ('number', 'zagol',)

list_display_links = ('number', 'zagol',)

list_filter = ()

readonly_fields = ()

ordering = ('number',)

date_hierarchy='date_of_publication'

class TagsAdmin (admin. ModelAdmin):

list_display = ('number', 'name',)

list_display_links = ('number', 'name',)

list_filter = ()

readonly_fields = ()

ordering = ('name',)

class CommentAdmin (admin. ModelAdmin):

list_display=('pub_date', 'author_name',)

search_fields=('text',)

list_filter=('author_name',)

date_hierarchy='pub_date'

admin.site.register (Blog, BlogAdmin)

admin.site.register (Tags, TagsAdmin)

admin.site.register (Comment, CommentAdmin)

Файл forms.py для приложения blog:

# -* - coding: utf-8 -*-

from django import forms

from registration.forms import RegistrationFormUniqueEmail

from django.core.mail import send_mail

from.models import Blog

class RegistrationFormProfile(RegistrationFormUniqueEmail):

requisites = forms. CharField (label = 'Работа')

class BlogForm (forms. Form):

name = forms. CharField (max_length=150)

email = forms. EmailField()

message = forms. CharField (widget=forms. Textarea)

def send_email (self, subject, message, from_email, recipient_list=['viktori2000@qip.ru'], fail_silently=False):

return send_mail (subject, message, from_email, recipient_list, fail_silently)

Файл views.py для приложения blog:

# -* - coding: utf-8 -*-

from django.views.generic import ListView, DetailView, TemplateView

from.models import Blog, Tags, Comment

from django.contrib.auth.models import User

from django.views.generic.edit import FormView, CreateView, UpdateView

from django.forms import ModelForm

from django import forms

from django.db.models import Q

from django.contrib.auth.models import User

import datetime

from.forms import BlogForm

from django.views.generic.edit import CreateView

from django.views.generic.dates import MonthArchiveView

from profile.models import Profile

from django.shortcuts import redirect

from django.core.urlresolvers import reverse

class CreateNews(CreateView):

model = Blog

fields = ['number', 'zagol', 'author', 'image', 'date_of_publication', 'text', 'tags']

def get_context_data (self, **kwargs):

if self.request.user.is_authenticated() and Profile.objects.get (pk=self.request.user.id).party==True:

context = super (CreateNews, self).get_context_data(**kwargs)

context['object'] = Profile.objects.get (pk = self.request.user.id)

return context

class BlogList(ListView):

model = Blog

context_object_name = «blog»

def get_context_data (self, **kwargs):

context = super (BlogList, self).get_context_data(**kwargs)

if self.request.user.is_authenticated() and Profile.objects.get (pk=self.request.user.id).party==True:

date_obj = []

for obj in Blog.objects.dates ('created', 'month'):

date_obj.append(obj)

context['archives'] = date_obj

context ['active_main_menu']='main_blog'

else:

self.template_name = «profile/error.html»

context['ErrorText'] = u "Вы не авторизированны»

return context

class FilterTagsView(DetailView):

model = Blog

template_name = «blog/blog_list.html»

queryset = Blog.objects.all()

def get_context_data (self, **kwargs):

context = super (FilterTagsView, self).get_context_data(**kwargs)

if self.request.user.is_authenticated() and Profile.objects.get (pk=self.request.user.id).party==True:

date_obj = []

for obj in Blog.objects.dates ('created', 'month'):

date_obj.append(obj)

object = super (FilterTagsView, self).get_object()

context['blog'] = Blog.objects.filter (tags__pk = object.pk)

context['archives'] = date_obj

context ['active_main_menu']='main_blog'

return context

class BlogSearchView(ListView):

template_name = 'blog/blog_list.html'

model = Blog

def get_context_data (self, **kwargs):

context = super (BlogSearchView, self).get_context_data(**kwargs)

if self.request.user.is_authenticated() and Profile.objects.get (pk=self.request.user.id).party==True:

date_obj = []

for obj in Blog.objects.dates ('created', 'month'):

date_obj.append(obj)

context['archives'] = date_obj

context ['active_main_menu']='main_blog'

search_word = self.request.GET ['search_box'].lower()

arr = []

arr.append (Blog.objects.filter (Q(zagol__icontains = search_word)))

context['blog']=Blog.objects.filter (Q(zagol__icontains = search_word)|Q (author__icontains = search_word)|Q (text__icontains = search_word))

return context

class ArticleMonthArchiveView(MonthArchiveView):

queryset = Blog.objects.all()

date_field = «created»

make_object_list = True

allow_future = True

def get_context_data (self, **kwargs):

if self.request.user.is_authenticated() and Profile.objects.get (pk=self.request.user.id).party==True:

context = super (ArticleMonthArchiveView, self).get_context_data(**kwargs)

date_obj = []

for obj in Blog.objects.dates ('created', 'month'):

date_obj.append(obj)

context['archives'] = date_obj

context ['active_main_menu']='main_blog'

return context

class BlogDetail(CreateView):

template_name = «blog/blog_detail.html»

model = Comment

exclude = ['article', 'author_name', 'pub_date', 'admin_comment']

def get_context_data (self, **kwargs):

if self.request.user.is_authenticated() and Profile.objects.get (pk=self.request.user.id).party==True:

context = super (BlogDetail, self).get_context_data(**kwargs)

date_obj = []

for obj in Blog.objects.dates ('created', 'month'):

date_obj.append(obj)

context['blog'] = Blog.objects.get (pk = self.kwargs['pk'])

context['archives'] = date_obj

context ['active_main_menu'] = 'main_blog'

context['comments'] = Comment.objects.filter (article = context['blog'], admin_comment=True)

return context

def form_valid (self, form):

instance = form.save (commit=False)

instance.article = Blog.objects.get (pk=self.kwargs['pk'])

instance.author_name = self.request.user.username

instance.pub_date = datetime.datetime.now()

instance.save()

return redirect (self.get_absolute_url())

def get_absolute_url(self):

return reverse («blog_detail», kwargs={«pk»: self.kwargs['pk']})

Приложение MESSAGE:

Файл urls.py для приложения message:

from django.conf.urls import patterns, include, url

urlpatterns = patterns ('',

url (r'^$', 'messages.views.all_message'),

url (r'^sendmessage/(? P<id>[^/]+)/$', 'messages.views.send_message'),

)

Файл admin.py для приложения message:

from django.contrib import admin

from.models import Message, Chat

class MessageAdmin (admin. ModelAdmin):

list_display = ('recipient', 'sender', 'date', 'title')

ordering = ('recipient', 'sender')

list_filter = ('recipient', 'sender')

admin.site.register (Message, MessageAdmin)

class ChatAdmin (admin. ModelAdmin):

list_display = ('person1', 'person2')

ordering = ('person1', 'person2')

list_filter = ('person1', 'person2')

admin.site.register (Chat, ChatAdmin)

Файл views.py для приложения message:

# -* - coding: utf-8 -*-

from.models import Message, Chat

from profile.models import Profile

from django.views.decorators.csrf import csrf_exempt

from django.template import RequestContext # нужно чтобы передавать реквест в контекст

from django.forms import ModelForm

from django.http import HttpResponse, HttpResponseRedirect

from django import forms

from django.db.models import Q

from django.shortcuts import render_to_response, redirect

from django.contrib.auth.models import User

import datetime

import time

@csrf_exempt

def all_message(request):

ERROR = None

if request.user.is_authenticated() and Profile.objects.get (pk=request.user.id).party==True:

i_am = User.objects.get (pk = request.user.id)

temp4 = Q (person2 = i_am)

temp5 = Q (person1 = i_am)

all_friend = Chat.objects.filter (temp4 | temp5)

i_am = User.objects.get (pk = request.user.id)

messages = Message.objects.filter (recipient = i_am).filter (reader = False).count()

image = all_friend

context = {'all_friend':all_friend, 'messages': messages, 'image':image}

return render_to_response ('friends/all_message.html', context, context_instance=RequestContext(request))

else:

return render_to_response («friends/error.html», {'ErrorText': u» Вы не авторизированны»})

@csrf_exempt

def send_message (request, id):

class MessageForm (forms. Form):

title = forms. CharField (max_length=350, required=False)

message = forms. CharField (max_length=350, required=False, widget=forms. Textarea)

friend = User.objects.get (pk = id)

i_am = User.objects.get (pk = request.user.id)

temp1 = Q (recipient = friend) & Q (sender = i_am)

temp2 = Q (recipient = i_am) & Q (sender = friend)

temp3 = temp1 | temp2

temp4 = Q (person2 = i_am) & Q (person1 = friend)

temp5 = Q (person1 = i_am) & Q (person2 = friend)

if len (Chat.objects.filter (temp4 | temp5)) == 0:

chat = Chat()

chat.person1 = i_am

chat.person2 = friend

chat.save()

else:

pass

if request.method == 'POST':

all_message = Message.objects.filter(temp3).order_by('date')

chat_obj = Chat.objects.get (temp4 | temp5)

form = MessageForm (request.POST)

if form.is_valid():

title = form.cleaned_data['title']

message = form.cleaned_data['message']

send_message = Message()

send_message.recipient = friend

send_message.sender = i_am

send_message.date = datetime.datetime.now()

send_message.title = title

send_message.message = message

send_message.reader = False

send_message.save()

chat_obj.messages.add (send_message)

chat_obj.save()

return redirect ('/message/sendmessage/'+ str(id) + '/')

else:

all_message = Message.objects.filter(temp3).order_by('date') [0:1]

temp4 = Q (person2 = i_am) & Q (person1 = friend)

temp5 = Q (person1 = i_am) & Q (person2 = friend)

person_type = Chat.objects.filter (temp4 | temp5)

form = MessageForm()

send = Message.objects.filter(temp2)

for elem in send:

if not elem.reader:

elem.reader=True

elem.save()

context = {'form':form, 'friend': friend, 'all_message': all_message}

return render_to_response ('friends/send_message.html', context, context_instance=RequestContext(request))

Приложение В

ККМОО «Молодежная лига развития национальных культур Кубани»

350000, г. Краснодар, ул. Красноармейская 53.

ИНН: 2310023918

КПП: 231001001

Счет №407038108000000000019

Банк: АО «Юг-Инвест банк», г. Краснодар

БИК 040349966

Счет №: 30101810600000000966

Код по ОКОНХ 98400

Код по ОКПО 39744165

Приложение №1 к договору № ________ от «__» ______ 2012 г.

Техническое задание для создания программной и визуальной части сайта:

1. Разработка дизайна для графической части сайта.

2. Разработка логотипа в векторном формате.

3. Создание программного обеспечения на языке программирования Python, в среде Django.

4. Создание социального раздела для общения между участниками «Клубов интернациональной дружбы».

5. Размещение файлов в сети интернет для отображения текстовой и графической информации в сети интернет, с возможностью вывода информации из базы данных и редактирования содержимого базы данных

6. Создание раздела для вновь созданных и создаваемых «Клубов интернациональной дружбы», в который можно будет добавлять текстовую, графическую и видео информацию, в том числе на английском языке.

Правообладатель __________________

Приобретатель _______________

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.