Learning back-end development with Flask

  • #1
238
6

Main Question or Discussion Point

Hi

I want to learn and understand web development, and just knowing what to do is not enough for me; I, to the extent it is possible, want to know how the web works. So, if I develop a web app or website with Flask, I want to know what is going on under the hood (it's just how my head works... I cannot use anything without understanding it deeply to an extent).

HTML and CSS is something I've worked with for a year. I've also taken a few courses in Javascript. That's really the extent of my knowledge about the web alongside some YouTube videos about how the web works. So, I know practically nothing about the backend of web development.
Also, I have used Python for scientific use for several years.

So, what I am looking for is some understanding of web development, and also some tutorials on how to make web apps and websites using Flask.
 

Answers and Replies

  • #2
8,266
5,095
That sounds like a good thing for you to learn. But it is unclear what level you want to go to.

Ethernet?
TCP/IP?
Routers?
Web Servers? https://www.webdevelopersnotes.com/what-is-web-server

In any case, there are numerous tutorials online for all of those. In any case, Wikipedia is often a good place to start. Read the articles, then look at the linked references at the bottom.
 
  • #3
238
6
That sounds like a good thing for you to learn. But it is unclear what level you want to go to.

Ethernet?
TCP/IP?
Routers?
Web Servers? https://www.webdevelopersnotes.com/what-is-web-server

In any case, there are numerous tutorials online for all of those. In any case, Wikipedia is often a good place to start. Read the articles, then look at the linked references at the bottom.
Yeah, I know it's unclear what Level I want to go to. I am not sure myself, and I don't think I'll know until I've read a bit more about it. I should probably just start at the top and work my way down.

However, I definitely want to go deeper than the link about web servers; I know most of that already.
 
  • #4
1,516
617
I've never heard of Flask, but I write webservers all the time. Here is what happens when you make a request.

Your browser first takes the url "https://www.physicsforums.com" and asks your DNS where that url is. This returns an IP (in physicsforums case it's 74.86.200.109) which is likely a load balancer or network switch, which then redirects you again to your actual server. This server is listening for new requests on port 80 (443 for https) with a program called Apache. (There are other ones like ngix, but Apache runs 99% of servers.) Apache then takes your requests and does whatever it's configured to do with it. It can do nothing, return a static page, call an executable, or (most commonly) will launch PHP. PHP then processes it's script and write output to stdout, which Apache then returns to the user. This is how html is generated.

That html is then rendered by your browser, which may require additional information such a javascript or css, which is specified by the html, but not returned with it.

There are usually additional layers of abstraction. For example, that final machine that runs apache is probably not really a physical machine but a VM.
 
  • #5
QuantumQuest
Science Advisor
Insights Author
Gold Member
915
476
Hi

I want to learn and understand web development, and just knowing what to do is not enough for me; I, to the extent it is possible, want to know how the web works. So, if I develop a web app or website with Flask, I want to know what is going on under the hood (it's just how my head works... I cannot use anything without understanding it deeply to an extent).

HTML and CSS is something I've worked with for a year. I've also taken a few courses in Javascript. That's really the extent of my knowledge about the web alongside some YouTube videos about how the web works. So, I know practically nothing about the backend of web development.
Also, I have used Python for scientific use for several years.
So, what I am looking for is some understanding of web development, and also some tutorials on how to make web apps and websites using Flask.
A first step towards learning how the web works and how to develop applications for the web is to get a good understanding about the history of the web and how things came to where they are now, if you have not already done so. A good starting point is World Wide Web Foundation. This recommendation has not the purpose of learning history but to start forming some complete picture about how various technologies cooperate and interoperate - you can google specific terms and things you don't know as you go to this end, in order to create a "vehicle" for the operation of web applications of any kind.

Talking from my own educational experience about fifteen years ago, when I was taking lessons for the web developer certification and adapting to the present web world, the recommended sequence of topics is to start from networking - internetworking (ISO/OSI, TCP/IP protocol stacks), HTTP protocol and go to client side, learning HTML5, CSS, XML, JavaScript (ECMAScript to be precise because JavaScript is more of a title of honor now as it was developed first (1996), submitted to ECMA for standardization (1997) and this resulted in ECMAScript), Databases (RDBMSs and NoSQLs) and then go to server side. This side has several competitive - well not really competitive any more, scripting languages / technologies like PHP - which is by far the dominant server side scripting language now , Python, ASP.NET, Java (for the web), ColdFusion and some others with even less usage (you can take a look here for some usage stats). Frameworks for both client and server side, are an indispensable part of today's web development scene which demands building complex apps in a fast and reliable manner. You must also learn about design patterns for the development of web apps like MVC and I'd also recommend going further and learning about Pattern Oriented Software Architecture (POSA).

You can skip whatever you already know from the above but be careful at this because real knowledge comes only along with enough experience, meaning going into as much depth as you can for now and practicing - ideally working, on these. From my professional experience I can tell you that you'll come across many unknown, not explicitly implied and other - at times surprising, things and you'll want to reiterate (several times in some cases) over the same or similar things.

As a good book, I would recommend Deitel's Internet and World Wide Web How to Program.

For Flask tutorial I would recommend Full Stack Python's tutorial and also Italo Maia's Building Web Applications with Flask.
 
Last edited:

Related Threads on Learning back-end development with Flask

  • Last Post
Replies
4
Views
5K
Replies
4
Views
954
  • Last Post
Replies
14
Views
5K
  • Last Post
Replies
14
Views
3K
Replies
4
Views
969
Replies
12
Views
1K
Replies
4
Views
3K
Replies
31
Views
6K
Replies
10
Views
898
Top