How to Configure Celery and Celery Beat with Django deployed on Elastic Beanstalk Amazon Linux 2 with Elasticache as Redis server?

2022-09-23 Thread Edchel Stephen Nini
*Overview:*
In our Django web app, there are some background tasks that we want to run 
every midnight. With this, I tried celery with celery beat.

 I was able to successfully implement background task scheduler with celery 
beat and worker with Redis as Celery broker following the tutorial on:

1. https://realpython.com/asynchronous-tasks-with-django-and-celery/
2. 
https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html#using-celery-with-django
3. https://docs.celeryq.dev/en/latest/userguide/periodic-tasks.html



*The feature is working locally by running the servers, scheduler and 
workers accordingly on separate terminals.*
Django Server:
*`python manage.py runserver`*

Redis Server:
*`redis-server`*

Celery Worker:
*`celery -A django_project.celery beat -l info`*

Celery Beat Scheduler:
*`celery -A django_project worker -l info`*


*Question:*
How do I configure this for deployment in Elastic Beanstalk?
What is the correct way to set this up properly with Elasticache as the 
Redis server?

 Current Stack:
Django 3.1 deployed on AWS Elastic Beanstalk

Python 3.8 running on 64bit Amazon Linux 2/3.3.9 with ElastiCache endpoint


redis==4.3.4 # https://pypi.org/project/redis/

celery==5.2.7 # https://pypi.org/project/celery/

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/edbc3f44-07c5-4ccb-aad8-ce15eb84c25fn%40googlegroups.com.


What's the best, most recommended way for handling model field encryption and decryption? Any python or django specific libraries?

2022-04-25 Thread Edchel Stephen Nini
Good day everyone, What's the best/most recommended way to handle
encryption in Model fields, like email, credit card number, etc? Also
decrypting the said encrypted fields and presenting data back in views,
templates, etc? What is the recommended workflow?
Do you know of any python or django specific libraries best to use? Thanks
in advance! Sincerely, Ed

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAMeVmurmkP%2BVVW7Xrk5QDuSkV83i2UMKSQq4qr62j0aMapudSQ%40mail.gmail.com.


Re: Celery & Docker Setup

2021-11-10 Thread Edchel Stephen Nini
Yes you can add celery anywhere.

Check out the full tutorial on how he did it.

You're welcome.

Keep safe,
Ed

On Thu, 11 Nov 2021 at 00:17, Trippy Samurai 
wrote:

> Thanks edchels for the link considering the views is it possible to add?
>
>
> On Wednesday, 10 November 2021 at 15:52:14 UTC+5:30 edchels...@gmail.com
> wrote:
>
>> Checkout this tutorial
>>
>> https://realpython.com/asynchronous-tasks-with-django-and-celery/
>>
>> On Wed, 10 Nov 2021 at 17:12, Trippy Samurai 
>> wrote:
>>
>>> Hello,
>>> I have around 18 views in my views.py file how do i integrate with
>>> celery,Please help me if anyone's aware
>>>
>>> *Views*.*py:*
>>>
>>> from django import forms
>>> from django.contrib import auth
>>> from django.http import request
>>> from django.http.response import HttpResponse, HttpResponseRedirect
>>> from django.shortcuts import render,redirect
>>> from django.urls import reverse
>>> from django.contrib.auth import login,logout,authenticate
>>> from django.contrib.auth.decorators import login_required
>>> from django.contrib import messages
>>> from django.views.generic import CreateView
>>> from .forms import
>>> DeveloperSignupForm,ProjectManagerSignupForm,TicketCreateForm
>>> from django.contrib.auth.forms import AuthenticationForm
>>> from .models import Developer, User,Ticket
>>>
>>> # Create your views here.
>>> def index(request):
>>> return render(request,'app/login_register_page.html')
>>>
>>> class developer_register(CreateView):
>>> model = User
>>> form_class = DeveloperSignupForm
>>> template_name = 'app/dev_register.html'
>>>
>>> def form_valid(self,form):
>>> user = form.save()
>>> return HttpResponse('Thank you for Registering,Please Login')
>>>
>>>
>>> class manager_register(CreateView):
>>> model = User
>>> form_class = ProjectManagerSignupForm
>>> template_name = 'app/pm_register.html'
>>>
>>> def form_valid(self,form):
>>> user = form.save()
>>> return HttpResponse('Thank you for Registering,Please Login')
>>>
>>>
>>>
>>> def manager_login(request):
>>> current = User.objects.filter(is_manager = True)
>>> if request.method == 'POST':
>>> pm_form = AuthenticationForm(data=request.POST)
>>>
>>> if pm_form.is_valid():
>>> username = pm_form.cleaned_data.get('username')
>>> password = pm_form.cleaned_data.get('password')
>>> user = authenticate(username=username,password=password)
>>>
>>> if user is not None:
>>> if user in current:
>>> login(request,user)
>>> return redirect(reverse('pm_dashboard'))
>>> else:
>>> messages.error(request,"Invalid Username or Password")
>>>
>>> else:
>>> messages.error(request,"Invalid Username or Password")
>>> return render(request, 'app/pm_login.html',context={
>>> 'form':AuthenticationForm(),
>>> })
>>>
>>> @login_required
>>> def pm_dashboard(request):
>>> return render(request,'app/pm_dash.html')
>>>
>>>
>>>
>>>
>>> def developer_login(request):
>>> current = User.objects.filter(is_developer = True)
>>> if request.method == 'POST':
>>> dev_form = AuthenticationForm(data=request.POST)
>>>
>>> if dev_form.is_valid():
>>> username = dev_form.cleaned_data.get('username')
>>> password = dev_form.cleaned_data.get('password')
>>> user = authenticate(username=username,password=password)
>>>
>>> if user is not None:
>>> if user in current:
>>> login(request,user)
>>> return redirect(reverse('dev_dashboard'))
>>>
>>> else:
>>> messages.error(request,"Invalid Username or Password")
>>>
>>> else:
>>> messages.error(request,"Invalid Username or Password")
>>> return render(request, 'app/dev_login.html',context={
>>> 'form':AuthenticationForm(),
>>> })
>>> @login_required
>>> def dev_dashboard(request):
>>> return render(request,'app/dev_dash.html')
>>>
>>> @login_required
>>> def ticket_create_view(request):
>>>
>>> if request.POST:
>>> form = TicketCreateForm(request.POST)
>>>
>>> if form.is_valid():
>>>
>>> obj = form.save()
>>> obj.created_by = request.user
>>> obj.status = "Opened"
>>> obj.save()
>>>
>>> return HttpResponseRedirect(reverse('pm_open_tickets'))
>>>
>>> else:
>>> form = TicketCreateForm()
>>>
>>> return render(request,
>>> 'app/create_ticket.html',
>>> {'form': form,})
>>>
>>> @login_required
>>> def open_tickets_view(request):
>>> tickets_open = Ticket.objects.filter(status = 'Opened')
>>> return render(request,'app/open_tickets.html',{"tickets": tickets_open})
>>> @login_required
>>> def accept_tickets_view(request,pk):
>>> ticket = Ticket.objects.get(id=pk)
>>> if ticket.status == 'Opened':
>>> ticket.status = 'Accepted'
>>> ticket.accepted_by = request.user
>>> ticket.save()
>>> return redirect(reverse('open_tickets'))
>>>
>>> @login_required
>>> def dev_accepted_ticket(request):
>>> ticket_complete = Ticket.objects.filter(status = 'Accepted',accepted_by
>>> = request.user)
>>> return render(request,'app/dev_accepted_ticket.html',{"tickets":
>>> ticket_complete})
>>>
>>>
>>> @login_required
>>> def mark_complete_tickets_view(request,pk):
>>> ticket = Ticket.objects.get(id=pk)
>>> if ticket.status == 'Accepted' and ticket.accepted_by

Re: Celery & Docker Setup

2021-11-10 Thread Edchel Stephen Nini
Checkout this tutorial

https://realpython.com/asynchronous-tasks-with-django-and-celery/

On Wed, 10 Nov 2021 at 17:12, Trippy Samurai 
wrote:

> Hello,
> I have around 18 views in my views.py file how do i integrate with
> celery,Please help me if anyone's aware
>
> *Views*.*py:*
>
> from django import forms
> from django.contrib import auth
> from django.http import request
> from django.http.response import HttpResponse, HttpResponseRedirect
> from django.shortcuts import render,redirect
> from django.urls import reverse
> from django.contrib.auth import login,logout,authenticate
> from django.contrib.auth.decorators import login_required
> from django.contrib import messages
> from django.views.generic import CreateView
> from .forms import
> DeveloperSignupForm,ProjectManagerSignupForm,TicketCreateForm
> from django.contrib.auth.forms import AuthenticationForm
> from .models import Developer, User,Ticket
>
> # Create your views here.
> def index(request):
> return render(request,'app/login_register_page.html')
>
> class developer_register(CreateView):
> model = User
> form_class = DeveloperSignupForm
> template_name = 'app/dev_register.html'
>
> def form_valid(self,form):
> user = form.save()
> return HttpResponse('Thank you for Registering,Please Login')
>
>
> class manager_register(CreateView):
> model = User
> form_class = ProjectManagerSignupForm
> template_name = 'app/pm_register.html'
>
> def form_valid(self,form):
> user = form.save()
> return HttpResponse('Thank you for Registering,Please Login')
>
>
>
> def manager_login(request):
> current = User.objects.filter(is_manager = True)
> if request.method == 'POST':
> pm_form = AuthenticationForm(data=request.POST)
>
> if pm_form.is_valid():
> username = pm_form.cleaned_data.get('username')
> password = pm_form.cleaned_data.get('password')
> user = authenticate(username=username,password=password)
>
> if user is not None:
> if user in current:
> login(request,user)
> return redirect(reverse('pm_dashboard'))
> else:
> messages.error(request,"Invalid Username or Password")
>
> else:
> messages.error(request,"Invalid Username or Password")
> return render(request, 'app/pm_login.html',context={
> 'form':AuthenticationForm(),
> })
>
> @login_required
> def pm_dashboard(request):
> return render(request,'app/pm_dash.html')
>
>
>
>
> def developer_login(request):
> current = User.objects.filter(is_developer = True)
> if request.method == 'POST':
> dev_form = AuthenticationForm(data=request.POST)
>
> if dev_form.is_valid():
> username = dev_form.cleaned_data.get('username')
> password = dev_form.cleaned_data.get('password')
> user = authenticate(username=username,password=password)
>
> if user is not None:
> if user in current:
> login(request,user)
> return redirect(reverse('dev_dashboard'))
>
> else:
> messages.error(request,"Invalid Username or Password")
>
> else:
> messages.error(request,"Invalid Username or Password")
> return render(request, 'app/dev_login.html',context={
> 'form':AuthenticationForm(),
> })
> @login_required
> def dev_dashboard(request):
> return render(request,'app/dev_dash.html')
>
> @login_required
> def ticket_create_view(request):
>
> if request.POST:
> form = TicketCreateForm(request.POST)
>
> if form.is_valid():
>
> obj = form.save()
> obj.created_by = request.user
> obj.status = "Opened"
> obj.save()
>
> return HttpResponseRedirect(reverse('pm_open_tickets'))
>
> else:
> form = TicketCreateForm()
>
> return render(request,
> 'app/create_ticket.html',
> {'form': form,})
>
> @login_required
> def open_tickets_view(request):
> tickets_open = Ticket.objects.filter(status = 'Opened')
> return render(request,'app/open_tickets.html',{"tickets": tickets_open})
> @login_required
> def accept_tickets_view(request,pk):
> ticket = Ticket.objects.get(id=pk)
> if ticket.status == 'Opened':
> ticket.status = 'Accepted'
> ticket.accepted_by = request.user
> ticket.save()
> return redirect(reverse('open_tickets'))
>
> @login_required
> def dev_accepted_ticket(request):
> ticket_complete = Ticket.objects.filter(status = 'Accepted',accepted_by =
> request.user)
> return render(request,'app/dev_accepted_ticket.html',{"tickets":
> ticket_complete})
>
>
> @login_required
> def mark_complete_tickets_view(request,pk):
> ticket = Ticket.objects.get(id=pk)
> if ticket.status == 'Accepted' and ticket.accepted_by == request.user:
> ticket.status = 'Completed'
> ticket.save()
> return redirect(reverse('accepted_tickets_view'))
>
>
> @login_required
> def dev_completed_ticket(request):
> tickets_completed = Ticket.objects.filter(status = 'Completed',accepted_by
> = request.user)
> return
> render(request,'app/dev_complete_ticket.html',{'tickets':tickets_completed})
>
> @login_required
> def dev_closed_tickets_view(request):
> tickets_closed = Ticket.objects.filter(status='Closed',accepted_by =
> request.user)
> return
> render(request,'app/dev_closed_tickets.html',{'tickets':tickets_closed})
>
>
> @login_required
> def pm_open_tickets_view(request):
> 

Re: Celery & Docker Setup

2021-11-10 Thread Edchel Stephen Nini
Checkout this tutorial

https://realpython.com/asynchronous-tasks-with-django-and-celery/

On Wed, 10 Nov 2021 at 17:12, Trippy Samurai 
wrote:

> Hello,
> I have around 18 views in my views.py file how do i integrate with
> celery,Please help me if anyone's aware
>
> *Views*.*py:*
>
> from django import forms
> from django.contrib import auth
> from django.http import request
> from django.http.response import HttpResponse, HttpResponseRedirect
> from django.shortcuts import render,redirect
> from django.urls import reverse
> from django.contrib.auth import login,logout,authenticate
> from django.contrib.auth.decorators import login_required
> from django.contrib import messages
> from django.views.generic import CreateView
> from .forms import
> DeveloperSignupForm,ProjectManagerSignupForm,TicketCreateForm
> from django.contrib.auth.forms import AuthenticationForm
> from .models import Developer, User,Ticket
>
> # Create your views here.
> def index(request):
> return render(request,'app/login_register_page.html')
>
> class developer_register(CreateView):
> model = User
> form_class = DeveloperSignupForm
> template_name = 'app/dev_register.html'
>
> def form_valid(self,form):
> user = form.save()
> return HttpResponse('Thank you for Registering,Please Login')
>
>
> class manager_register(CreateView):
> model = User
> form_class = ProjectManagerSignupForm
> template_name = 'app/pm_register.html'
>
> def form_valid(self,form):
> user = form.save()
> return HttpResponse('Thank you for Registering,Please Login')
>
>
>
> def manager_login(request):
> current = User.objects.filter(is_manager = True)
> if request.method == 'POST':
> pm_form = AuthenticationForm(data=request.POST)
>
> if pm_form.is_valid():
> username = pm_form.cleaned_data.get('username')
> password = pm_form.cleaned_data.get('password')
> user = authenticate(username=username,password=password)
>
> if user is not None:
> if user in current:
> login(request,user)
> return redirect(reverse('pm_dashboard'))
> else:
> messages.error(request,"Invalid Username or Password")
>
> else:
> messages.error(request,"Invalid Username or Password")
> return render(request, 'app/pm_login.html',context={
> 'form':AuthenticationForm(),
> })
>
> @login_required
> def pm_dashboard(request):
> return render(request,'app/pm_dash.html')
>
>
>
>
> def developer_login(request):
> current = User.objects.filter(is_developer = True)
> if request.method == 'POST':
> dev_form = AuthenticationForm(data=request.POST)
>
> if dev_form.is_valid():
> username = dev_form.cleaned_data.get('username')
> password = dev_form.cleaned_data.get('password')
> user = authenticate(username=username,password=password)
>
> if user is not None:
> if user in current:
> login(request,user)
> return redirect(reverse('dev_dashboard'))
>
> else:
> messages.error(request,"Invalid Username or Password")
>
> else:
> messages.error(request,"Invalid Username or Password")
> return render(request, 'app/dev_login.html',context={
> 'form':AuthenticationForm(),
> })
> @login_required
> def dev_dashboard(request):
> return render(request,'app/dev_dash.html')
>
> @login_required
> def ticket_create_view(request):
>
> if request.POST:
> form = TicketCreateForm(request.POST)
>
> if form.is_valid():
>
> obj = form.save()
> obj.created_by = request.user
> obj.status = "Opened"
> obj.save()
>
> return HttpResponseRedirect(reverse('pm_open_tickets'))
>
> else:
> form = TicketCreateForm()
>
> return render(request,
> 'app/create_ticket.html',
> {'form': form,})
>
> @login_required
> def open_tickets_view(request):
> tickets_open = Ticket.objects.filter(status = 'Opened')
> return render(request,'app/open_tickets.html',{"tickets": tickets_open})
> @login_required
> def accept_tickets_view(request,pk):
> ticket = Ticket.objects.get(id=pk)
> if ticket.status == 'Opened':
> ticket.status = 'Accepted'
> ticket.accepted_by = request.user
> ticket.save()
> return redirect(reverse('open_tickets'))
>
> @login_required
> def dev_accepted_ticket(request):
> ticket_complete = Ticket.objects.filter(status = 'Accepted',accepted_by =
> request.user)
> return render(request,'app/dev_accepted_ticket.html',{"tickets":
> ticket_complete})
>
>
> @login_required
> def mark_complete_tickets_view(request,pk):
> ticket = Ticket.objects.get(id=pk)
> if ticket.status == 'Accepted' and ticket.accepted_by == request.user:
> ticket.status = 'Completed'
> ticket.save()
> return redirect(reverse('accepted_tickets_view'))
>
>
> @login_required
> def dev_completed_ticket(request):
> tickets_completed = Ticket.objects.filter(status = 'Completed',accepted_by
> = request.user)
> return
> render(request,'app/dev_complete_ticket.html',{'tickets':tickets_completed})
>
> @login_required
> def dev_closed_tickets_view(request):
> tickets_closed = Ticket.objects.filter(status='Closed',accepted_by =
> request.user)
> return
> render(request,'app/dev_closed_tickets.html',{'tickets':tickets_closed})
>
>
> @login_required
> def pm_open_tickets_view(request):
> 

Re: Hi, How can I implement Microservices and Serverless with Django on AWS?

2021-10-31 Thread Edchel Stephen Nini
Thank you for your reply. Will check this links out!

Thanks a lot 😀

On Sat, Oct 30, 2021, 9:29 PM MR INDIA,  wrote:

> Microservices can be implemented via APIs Rest Or Graphql it is your
> choice and as a matter of fact Django can run server less infrastructures.
> See this talk about server less with Django: https://youtu.be/oYy9_4fm56o
>  or this tutorial: https://youtu.be/WaiL4sbaj_o
> Microservices : https://youtu.be/0iB5IPoTDts
>
> On Friday, 29 October 2021 at 19:36:44 UTC+5:30 edchels...@gmail.com
> wrote:
>
>> Just attended yesterday the AWS Innovate Modern Applications in this link:
>>
>> https://innovate-modernapps-apj.virtual.awsevents.com/
>>
>> I'm really interested on the Microservices and Serverless approach.
>>
>> How can I implement this with django?
>>
>> Thanks in advance!
>>
>> Sincerely,
>> Ed
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/a432f043-ec18-4d7c-b30e-a4f573cf8e0an%40googlegroups.com
> 
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAMeVmuqPUXoym56M%3DytgGiJvzhSDELjUwA6OfROn%2Bu5ufLG6RQ%40mail.gmail.com.


Hi, How can I implement Microservices and Serverless with Django on AWS?

2021-10-29 Thread Edchel Stephen Nini
Just attended yesterday the AWS Innovate Modern Applications in this link:

https://innovate-modernapps-apj.virtual.awsevents.com/

I'm really interested on the Microservices and Serverless approach.

How can I implement this with django?

Thanks in advance!

Sincerely,
Ed

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/855a49da-65c9-4506-ad48-07a05ea4a985n%40googlegroups.com.