DEV Community

Cover image for I need help
Nirosh kumar.R
Nirosh kumar.R

Posted on

I need help

If you are here to help then this is the deal, I learnt python years ago and now in this pandemic time I mastered my python knowledge. And after that idk where to go and i jumped into webdevlop. So now there are many things to learn in javascript it's okay but what about my python I wanna use that also and javascript is like a hell for me. Is there any one who can answer me these questions
2q(question):should I use django or some js framework.
1q(question):is django useful for front end also or just backed and stuffs?

Top comments (20)

Collapse
 
htthomas profile image
TobiasHT

Django is a powerful backend service, not really frontend. Apparently JavaScript has become the de facto language for web Development and it's not gonna change anytime soon. So JavaScript is a necessary evil if you wanna design a dynamic web page.
However, the Python community is hard at work developing important tools for web. If you wanna use your Python, you can use it to develop mainly desktop apps and games, also Ai projects and scientific projects. A lot of things can be done with Python, but for now if you wanna design webpages, you have to use JavaScript

Collapse
 
dev_nirosh profile image
Nirosh kumar.R

Yeah.. your correct I'm must learn javascript seriously I think so for frontend. Thank you for the help🌟

Collapse
 
habereder profile image
Raphael Habereder

If it's any help to you, maybe look at vue.js. I was in your shoes just a few months ago. Haven't developed Frontend in 13 years, back then in jquery, and wanted to extend my knowledge to be more competitive in the future.

I found vue.js to be the easiest to jump in and get things done. It's quite fun too actually

Thread Thread
 
dev_nirosh profile image
Nirosh kumar.R

Yeah..I'm think of jumping in vue.js before react so that I may become comfortable with frontend. Thanks for the comment 🌟

Collapse
 
alejandroav profile image
Alejandro Alarcón

Since everyone already gave the complex answers, I'll try to answer your actual questions.

1) "Should I use django or some js framework?"

Choosing to use a framework, whether in front end or back end, is a matter of requirements. Frameworks are very powerful, but they have a steep learning curve in the beginning. However, most webdev jobs today require candidates to know some of them, so you won't waste your time learning them. Django is a good option for back end, which takes me to your other question.

2) "Is django useful for front end also or just backed and stuffs?"

Django is a back end framework. This basically means that your python code executes on a server which can output different things, such as HTML views or a data payload (for example, a JSON result from an API).

Even if you use Django to render HTML views directly from the server, those views need JavaScript to have any dynamic functionality. If you don't use JavaScript, you're stuck with static pages and constant reloads.

In summary, if you just want to work as a back end developer, Python and Django, along with some other technologies like GraphQL, PostgreSQL, etc, can take you a long way, but if you want to be front end or full stack you will need that JavaScript knowledge. I would start with vanilla JavaScript and when you're comfortable with it, try a framework like Angular or React.

Collapse
 
dev_nirosh profile image
Nirosh kumar.R

This is so clear and understandable for my question and much more information I got from your comment thank u🌟.

Collapse
 
alejandroav profile image
Alejandro Alarcón

No problem 😁

Collapse
 
thefern profile image
Fernando B 🚀

I was like you python dev for years then I kept trying to do web dev with python and is just not gonna work unless you plan on doing nothing but backend, yes you must learn js. It takes a bit of time to get used to it coming from python but after a few months you'll love it because there's so much stuff you can do with it. Backend, Frontend, Mobile, and the list goes on.

Collapse
 
eminarium profile image
Merdan Durdyyev

Like other guys already wrote, Django is a super tool to write websites and web apps. you can youse Django to write a full web app all-in-one, backend and frontend in one app. That becomes a website where you serve ready-made HTML pages to the client-side.
You can use jQuery to add more dynamicity to it. Sorry about that, but jQuery is Javascript, and you will have to learn it.

But the other way, if the app is going to have only a browser version and if that website is not going to serve millions of users, I think that would be more than enough.

The other thing, if the data from the app is going to be consumed by mobile devices (iOS, Android, Windows mobile) then you definitely need to make it as a backend, using Django (as API) and respond in JSON, XML, or any other format. So that mobile devices are able to consume it.
Good luck Nirosh!

Collapse
 
michaelcurrin profile image
Michael Currin

Django is a web framework that handles a few things out the box. Database and migrations, CMS (user login in and can edit items) and a templating engine for rendering pages.

You might be able to find some integrations for Django that add specific JS behavior - for example there is an ecommerce version of Django adds on frontend and CMS behavior for you. But in general Django frontend side is intended to render HTML pages and it is up to you to write your own JS.

It's hard to answer your 2nd question without knowing what you want to build. You can use Django for your frontend and backend. You can also add your own JS on top of the HTML pages that Django renders. If you say JS is like hell for you, think Django will help you a bit by handling some stuff for you like sorting items on a page, forms and handling login. For anything more than that and for custom behavior not part of Django, you're going to have to write the JS yourself.

The typical Django experience is to give you a backend and frontend together, in fact no API just database use to render templates. It would feel weird to use Django only for your backend as there are other tools suitable for that which are lighter.

And for using Django on your frontend - I don't know what that means. It could be HTML templating, or it could be JS - again, you're going to have to write the JS yourself beyond the default behavior and you might find templating with a lighter Python library for your frontend more suitable. Or maybe you write your frontend using React or using Jekyll static site or something else and write your backend in Python. It's hard to know without the aim of what you are building or your knowledge of these tools.

Alternative...

It is well-known that Django is complex and opinionated, so you might feel like you are fighting to change something to get it to work the "Django way". While a lighter framework like Flask lets you build up only the things that you need and make choices yourself on how to do a CMS and a database (SQLAlchemy is a popular library for adding SQL functionality to Flask). Flask does handle templating well in a way similar to Django and Flask is also great for writing a REST API.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao • Edited

It depends cause your job market might be different for your country but if your a Django developer. You will never run away from doing backend development or building a front-end using bootstrap or some other front-end web framework.

It depends on how you would like to specialise. For me, I always specialise as a force multiplier as you can jump to Data Sci with ease due to the great libraries and the rich eco-system offered for Python.

As at the end of the day, AI & Data Science requires a strong backend developer to build these infrastructure to deliver data products or services.

Collapse
 
dev_nirosh profile image
Nirosh kumar.R

Thank u mate🌟

Collapse
 
astriskit profile image
H S • Edited

First, as it is said that there is no one tool to fit all the use-cases. So, it should never hurt to know more than one tool/programming language; Albeit master both/all, if possible.

Next, it comes to if it is possible to do the full-stack in one language - the javascript has made it to the day with that goal achieved. And using web-assembly python and other languages are trying to achieve that too. But, in case if you envision to work in web-world, I suggest you to learn javascript and master it.

But again questions like - what is the budget and dev-market looks like, what kind of app(s) could be built, how to achieve performance as users, code, coders, team(s) and business(s) scale, how to achieve a certain feature in the system, what it takes to adapt to the changing consumer/business needs, etc. provides a more holistic view to the software development. And this also makes a programming language just another tool which is being used to meet specific process-constraints.

Probably, one of the best approaches for beginners in software development would be to master one or more languages while making things, contributing to production code-base and start to move level-upwards, i.e. towards Software Engineering in general.

In process, picking up tools with various use-cases attended, well or not-well achieved, to sort specific problem-constraints and keeping an eye on various performance issues. Adding more to the belt - understandings about delivery, quality and maintenance of softwares.

For next query of django vs some-js framework - Django is a mature framework with "all batteries included" as they say;

It allows to develop a web-application such that the back-end is written in python. And optionally, front-end using the templating system included with django or just writing REST based apis with it.

Including db-layer - django provides ORM layer with nice abstraction having model, view and controller. All this could be touched without leaving python code. And on the top - active open-source development of the framework adds good community support too.

So, while the django can do full-stack development, it also allows for decoupling frontend and do that using SPA built with react-js or VueJS or server-rendered express powered app.

Your current application might not need so much to start with - but you may include the django for learning or maturity/opinions/stability that comes with it or simply for the love of python.

One specific place that might need you to decouple frontend from django-system would be developing SPAs - although, I believe that it could be implemented with django too, if not already done by some-one in the python community, because at the end of the day SPAs are also combination of JS, CSS and HTML.

But the libraries like react-js or frameworks like VueJS might add different advantages such as with react - it provides for client-end performance out-of-box using virtual-dom (not that you are left to not bother about performance any-more, but it offers a good baseline with react-layer responsible for writing DOM, but coder providing what to draw and when).

Conclusively, it won't hurt if you learn Js, Python, django and react and could feel over-whelming and confusing. But, keep learning and making something out of it. I think you'll be fine. Take a deep breath and leap of faith with some amount of risk. I'm trying to do the same.

All the best.

Collapse
 
dev_nirosh profile image
Nirosh kumar.R • Edited

Loved the way you said this and it's so formative. And I decided to take a breath and gonna leap forward with faith. Thank u so much🌟

Collapse
 
nghenzi profile image
Nestor Ghenzi

You can try panel.holoviz.org.
It is pure python and you can do awesome analytical webapps without touching Javascript.

Collapse
 
marcskovmadsen profile image
Marc Skov Madsen • Edited

And checkout awesome-panel.org for a gallery of data apps with code.

awesome-panel.org

Collapse
 
marcskovmadsen profile image
Marc Skov Madsen

You could use Panel panel.holoviz.org/. It's a part of the HoloViz family of data viz tools. It's really, really powerful and works both for exploration in a Notebook and for deployment as web apps.

You can checkout awesome-panel.org for live app inspiration.

Collapse
 
shraddhagamisource profile image
shraddha gami

You can learn Js framework/Django rest/Django

Depends on the application you want to build or you can see your future in.
Most of the companies have frontend and backend in different technologies. (For, example frontend in REACT/Angular and backend in python/Java). They use the REST API to call the backend service. For that case, you can learn the Django rest framework.

Then when to use Django?
When you've templates/ you want to use basic HTML, CSS, Js. Django has built-in template tags and filters which you can use in your template to rendering data.

Collapse
 
daveinweb_ profile image
Dave

In my opinion, the tools you use will depend on the project you are going to develop, maybe you should sit down to review the functionalities of Django or any other framework / library and conclude if it fits the needs of the project or if I need another tool.

According to your second question, maybe this link will help you a bit: stackoverflow.com/questions/908112...

Regards!

Collapse
 
abinash393 profile image
Abinash Panda

Here you have to learn to get a job as web dev.

HTML
CSS
JavaScript
React

Python
Django
PostgreSQL

HTTP
Session/Cookies
JWT

Git
GitHub
Linux

javascript.info
roadmap.sh