Разработка архитектуры закрытой корпоративной сети с использованием фреймворка 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
Подобные документы
Особенности функционирования закрытых частных социальных сетей, членство в которых доступно только для избранных. Сведение риска потери конфиденциальной информации к минимуму посредством ограничения доступа к социальным сетям. Структура web-приложения.
курсовая работа [1,9 M], добавлен 09.09.2015Django — свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC. Архитектура и основные компоненты приложения. Главные компоненты среды разработки Django. Некоторые возможности и взаимосвязь компонентов фреймворка.
реферат [23,7 K], добавлен 18.01.2015Use case-диаграмма. Оценка трудоёмкости и сроков разработки проекта с использованием языка Python по методикам CETIN И COCOMO-II. Проектирование информационной системы. Разработка приложения с использованием Django: создание шаблонов, моделей и пр.
дипломная работа [1,3 M], добавлен 10.07.2017Компоненты приложения Vue.js, использование шаблона MVVM. Характеристика Webpack и фреймворка NuxtJs. Python как язык программирования, модель MVC, компоненты и инструментарий фреймворка Django. Технология программирования Object Relational Mapping.
контрольная работа [296,4 K], добавлен 22.03.2017- Разработка геоинформационного программного обеспечения на базе открытых продуктов для целей кадастра
Исследование современных геоинформационных технологий, анализ их преимуществ и недостатков. Проектирование структуры базы данных, приложения и интерфейса проекта. Программная реализация геоинформационной системы и оценка ее экономической эффективности.
дипломная работа [3,2 M], добавлен 21.06.2012 Программирование с использованием технологий Microsoft .NET. Разработка приложения "Станция технического обслуживания автомобилей": инфологическое, даталогическое проектирование базы данных. Информационное и программное обеспечение, логическая структура.
курсовая работа [1,6 M], добавлен 03.07.2011Логическая и физическая модели базы данных. Запрет на содержание неопределенных значений. Размещение базы данных на сервере. Реализация клиентского приложения управления базой данных. Модульная структура приложения. Основные экранные формы приложения.
курсовая работа [1,4 M], добавлен 13.06.2012Архитектура и топологии IP-сетей, принципы и этапы их построения. Основное оборудование корпоративных IP сетей магистрального и локального уровней. Маршрутизация и масштабируемость в объединенных сетях. Анализ моделей проектирования кампусных сетей.
дипломная работа [2,0 M], добавлен 10.03.2013Создание базы данных при помощи СУБД, разработка собственного приложения. Информационно-логическая модель рекламного агентства. Структура реляционной базы данных в Access. Заполнение таблиц информацией. Структура приложения и взаимодействия форм.
курсовая работа [12,6 M], добавлен 17.06.2014Особенности проектирования корпоративных сетей. Информационные потоки в ЛВС предприятия. Обзор операционных систем: Nowell NetWare, семейство Windows 2000. Сетевая архитектура и ресурсы. Логическая структура Active Directory. Защита информации в сети.
дипломная работа [1,2 M], добавлен 31.10.2013