Learning back-end development with Flask

  • Thread starter Thread starter Avatrin
  • Start date Start date
  • Tags Tags
    flask Python Web
Click For Summary
Learning back-end development with Flask requires a foundational understanding of web technologies and protocols, including networking concepts like TCP/IP and HTTP. A solid grasp of HTML, CSS, and JavaScript is essential, as well as familiarity with databases and server-side scripting languages like Python. Resources such as Full Stack Python and Italo Maia's tutorials are recommended for practical Flask application development. Additionally, understanding design patterns like MVC and engaging with comprehensive resources will deepen knowledge and enhance skills. Mastery comes from practice and revisiting complex topics as needed.
Avatrin
Messages
242
Reaction score
6
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.
 
Technology news on Phys.org
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.
 
anorlunda said:
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.
 
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.
 
  • Like
Likes Avatrin
Avatrin said:
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:
  • Like
Likes Avatrin
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 13 ·
Replies
13
Views
4K
  • · Replies 17 ·
Replies
17
Views
3K
Replies
7
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 22 ·
Replies
22
Views
3K
  • · Replies 43 ·
2
Replies
43
Views
6K
  • · Replies 133 ·
5
Replies
133
Views
10K