# Настройки почтового сервера
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '@gmail.com'
EMAIL_HOST_PASSWORD = ''
EMAIL_PORT = 465
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
SERVER_EMAIL = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
def contactView(request):
if request.method == 'POST':
form = ContactForm(request.POST)
#Если форма заполнена корректно, сохраняем все введённые пользователем значения
if form.is_valid():
subject = form.cleaned_data['subject']
sender = form.cleaned_data['sender']
message = form.cleaned_data['message']
copy = form.cleaned_data['copy']
recipients = ['serega_s98@mail.ru']
#Если пользователь захотел получить копию себе, добавляем его в список получателей
if copy:
recipients.append(sender)
try:
send_mail(subject, message, 'serega_s98@mail.ru', recipients)
except BadHeaderError: #Защита от уязвимости
return HttpResponse('Invalid header found')
#Переходим на другую страницу, если сообщение отправлено
return render(request, 'pages/thanks.html')
else:
#Заполняем форму
form = ContactForm()
#Отправляем форму на страницу
return render(request, 'pages/contact.html', {'form': form})
class ContactForm(forms.Form):
subject = forms.CharField(max_length = 100)
sender = forms.EmailField()
message = forms.CharField()
copy = forms.BooleanField(required = False)
urlpatterns = [
url(r'^$', views.post_go),
path('course/', views.dollar_evro, name='dollar_evro'),
url(r'^contact/$', views.contactView),
]
# -*- coding: utf-8 -*-
import time
import vk_api
vk = vk_api.VkApi(login = 'login', password = 'password')
#vk_api.VkApi(token = 'a02d...e83fd') #Авторизоваться как сообщество
vk.auth()
values = {'out': 0,'count': 100,'time_offset': 60}
def write_msg(user_id, s):
vk.method('messages.send', {'user_id':user_id,'message':s})
while True:
response = vk.method('messages.get', values)
if response['items']:
values['last_message_id'] = response['items'][0]['id']
for item in response['items']:
write_msg(item[u'user_id'],u'Привет, Хабр!')
time.sleep(1)
path('', ListView.as_view(queryset=posts.objects.all().order_by("-date")[:20],
template_name="pages/wrapper.html"))
И при нажатии на определенную кнопку, js берет все эти разделы в блоке и вставляет в скрытый блок.