1
00:00:05,170 --> 00:00:09,550
Welcome everyone to this section of the course, which will give an introduction to the general framework

2
00:00:10,510 --> 00:00:15,040
in this lecture, we're going to have a brief overview of what the jingo framework is and a little bit

3
00:00:15,040 --> 00:00:20,800
of its history, as well as why we would want to use Django, the pros and cons of Django and some example

4
00:00:20,800 --> 00:00:22,360
websites that use Django.

5
00:00:22,870 --> 00:00:28,030
Afterwards, we're gonna have a separate series of lectures that focuses on the specifics of how the

6
00:00:28,030 --> 00:00:30,940
Django framework operates and works.

7
00:00:31,690 --> 00:00:38,740
OK, so we already know the general basics of the website process separated out into a front end and

8
00:00:38,740 --> 00:00:44,470
back end, and Django, written with Python, focuses on the back end of the website.

9
00:00:44,890 --> 00:00:48,040
So let's give you a little bit of history about the Django framework.

10
00:00:49,610 --> 00:00:56,660
So Jenga was created by Adrian Hull, Vardy and Simon Wilson in 2003, when they both were working at

11
00:00:56,660 --> 00:00:58,910
the Lawrence Journal World newspaper.

12
00:00:59,360 --> 00:01:05,600
And it has now expanded to a much larger open source project, which was released under IPC license

13
00:01:05,600 --> 00:01:08,960
in 2005 and all the way back in 2008.

14
00:01:09,260 --> 00:01:16,190
The non-profit Jingo Software Foundation was created to maintain and update the jingo framework, and

15
00:01:16,190 --> 00:01:23,420
it has a very fine schedule of updates, with new versions coming online all the time, and it's constantly

16
00:01:23,420 --> 00:01:26,840
being maintained for security updates, which we'll talk about later on.

17
00:01:28,250 --> 00:01:32,630
You should also take note of the fact that this project was started a newspaper which has created a

18
00:01:32,630 --> 00:01:38,210
culture of very good online documentation for Django because you had a bunch of journalists operating

19
00:01:38,210 --> 00:01:40,370
and using this actual product.

20
00:01:40,380 --> 00:01:46,160
So because of that, there was this culture of having very clear online examples and documentation.

21
00:01:46,490 --> 00:01:51,380
You can check this out at Django Project XCOM, but just keep in mind, we're going to be revisiting

22
00:01:51,380 --> 00:01:53,810
this website quite a bit throughout the rest of the course.

23
00:01:55,090 --> 00:02:01,420
And as a fun fact, this is actually named after Django Reinhardt because one of the developers who

24
00:02:01,420 --> 00:02:07,960
created Django was a big fan of jazz guitar and Django Reinhardt himself as a jazz guitarist.

25
00:02:08,320 --> 00:02:13,600
And a fun fact about Django Reinhardt is if you take a look at his left hand there, you can see that

26
00:02:13,600 --> 00:02:19,570
he actually suffered very bad burns when he was a teenager, and doctors said he was never going to

27
00:02:19,570 --> 00:02:25,510
be able to play guitar again, and he lost the ability to move his pinkie and ring finger on his left

28
00:02:25,510 --> 00:02:25,870
hand.

29
00:02:26,140 --> 00:02:31,120
However, he overcame that and was able to become one of history's best jazz guitars.

30
00:02:31,330 --> 00:02:36,340
So if Django Reinhardt was able to become a master jazz guitar player, we should be able to become

31
00:02:36,580 --> 00:02:38,560
Master Django Web developers.

32
00:02:39,790 --> 00:02:43,030
So let's get into a little more detail of what is Django?

33
00:02:43,420 --> 00:02:49,660
It's a Python based framework for creating web applications, and the framework allows us to have rules,

34
00:02:49,660 --> 00:02:55,870
structures and functionality to use Python code and libraries on the back end of our web application.

35
00:02:56,200 --> 00:03:02,710
It makes it much easier to develop websites, and because Django is specifically created with Python,

36
00:03:03,040 --> 00:03:06,550
it allows us to leverage a lot of prior Python knowledge.

37
00:03:08,430 --> 00:03:13,410
So as I mentioned, Python's the programming language used to work with Django, that means Django can

38
00:03:13,410 --> 00:03:18,510
then interact for web applications to send information to the user of the web application.

39
00:03:20,070 --> 00:03:23,880
Now, the question that always comes up is why would I actually want to use jingo?

40
00:03:24,720 --> 00:03:26,780
Well, there's a couple of key features.

41
00:03:26,790 --> 00:03:28,620
It allows for fast development.

42
00:03:28,890 --> 00:03:34,140
Once you understand the way Django actually runs and operates, it's a little bit of a steep learning

43
00:03:34,140 --> 00:03:34,440
curve.

44
00:03:34,620 --> 00:03:37,980
But once you get it, you can really create websites quite quickly.

45
00:03:38,580 --> 00:03:43,230
Most importantly, it also has many common features included, which I'll mention later on.

46
00:03:43,650 --> 00:03:46,950
It's updated often and secure by the Open Source Foundation.

47
00:03:47,370 --> 00:03:51,240
And it's very scalable and very versatile with Python.

48
00:03:51,810 --> 00:03:55,140
Now, let's talk about this idea of many common features being included.

49
00:03:56,550 --> 00:04:02,910
So you may have heard the fact that Django has, quote unquote batteries included or is fully loaded.

50
00:04:03,390 --> 00:04:10,980
This just means that has a lot of Python modules that take care of really common web application features.

51
00:04:11,760 --> 00:04:17,190
For example, if you're creating a web application, it's very likely you're going to want to have some

52
00:04:17,190 --> 00:04:23,520
sort of administration capabilities that is an admin that can log in and maybe edit accounts or check

53
00:04:23,520 --> 00:04:24,870
information on your database.

54
00:04:25,200 --> 00:04:28,470
Django already has those features built in other features.

55
00:04:28,470 --> 00:04:30,780
It has built in our authentication features.

56
00:04:31,080 --> 00:04:37,140
If you want users to have to have authorization or authentication with password access and usernames,

57
00:04:37,140 --> 00:04:42,660
etc. that's built into Django already, and it's easy to add on to your web application.

58
00:04:43,020 --> 00:04:49,260
Other things, like easy to use database interactions and security features are included in Django,

59
00:04:49,530 --> 00:04:54,570
which is why has this reputation of having a lot of features already included in it?

60
00:04:56,330 --> 00:05:02,540
So one of the other most important aspects of Django is the fact that since it uses Python as its programming

61
00:05:02,540 --> 00:05:08,030
language, we get to use all those awesome and cool Python libraries easily within Django.

62
00:05:08,870 --> 00:05:13,490
For example, let's imagine that your favorite data analysis tool happens to be written in Python.

63
00:05:13,730 --> 00:05:20,150
Maybe you're a fan of pandas, numpy or psychic learn, and you have some sort of program that uses

64
00:05:20,150 --> 00:05:24,260
those really cool Python libraries because Django is written in Python.

65
00:05:24,290 --> 00:05:31,250
That means we can easily integrate the two as using our Python code along the Django framework, which

66
00:05:31,280 --> 00:05:36,190
expands Python based projects to become user interactive web applications.

67
00:05:37,770 --> 00:05:41,850
So the pros of Django are that there's lots of features already built in.

68
00:05:42,540 --> 00:05:46,680
It's built with Python, which allows you to leverage all those other Python libraries.

69
00:05:46,980 --> 00:05:49,800
And it's scalable, versatile and secure.

70
00:05:50,490 --> 00:05:52,560
So what are the cons of Django?

71
00:05:52,920 --> 00:05:56,640
Obviously, we don't think there's too many cons, otherwise we wouldn't have made this course.

72
00:05:56,970 --> 00:06:03,660
But since it does have so many features, there is a bit of a steep learning curve to get good at working

73
00:06:03,660 --> 00:06:04,320
with Django.

74
00:06:04,740 --> 00:06:08,850
The whole purpose of this course, though, is to guide you through that learning curve and get you

75
00:06:08,850 --> 00:06:11,100
up and running as quickly as possible.

76
00:06:11,340 --> 00:06:15,750
So if you're in this course, I wouldn't really put that as a comment, since the whole purpose here

77
00:06:15,750 --> 00:06:19,080
is that that won't be an issue for you by the end of this course.

78
00:06:19,740 --> 00:06:24,390
One possible con, though, is that it ends up including many features you don't intend on using.

79
00:06:24,690 --> 00:06:30,090
If you're just trying to develop a very simple site that maybe is just a static web page, Django may

80
00:06:30,090 --> 00:06:32,040
be overkill for that sort of website.

81
00:06:32,340 --> 00:06:33,840
So it's something to keep in mind of.

82
00:06:33,840 --> 00:06:40,320
Do I need all these features of Django or what a simple HTML a little bit of CSS actually work as my

83
00:06:40,320 --> 00:06:40,800
website.

84
00:06:41,490 --> 00:06:49,620
Now you'll notice I put in Django Pros that built with Python was a good feature of Django, but technically

85
00:06:49,620 --> 00:06:56,250
it could also be a con if you are operating within an organization where no one is actually using Python.

86
00:06:56,490 --> 00:06:59,730
But you want to use a web application based with Django.

87
00:07:00,030 --> 00:07:04,710
That means you're introducing this idea of having to learn Python first before you can really work with

88
00:07:04,740 --> 00:07:05,230
Django.

89
00:07:05,550 --> 00:07:11,760
So that may be a con if Python is not very popular at your organization, or if perhaps you, the user,

90
00:07:11,760 --> 00:07:12,870
they'll actually know Python.

91
00:07:13,170 --> 00:07:16,800
That's going to be something else you have to learn in order to actually use Django.

92
00:07:16,920 --> 00:07:21,330
So it's something to keep in mind, especially when you're working with other colleagues in a larger

93
00:07:21,330 --> 00:07:22,140
organization.

94
00:07:22,350 --> 00:07:27,000
You are technically introducing a new language that is Python in order to work with Django.

95
00:07:28,130 --> 00:07:30,240
OK, so who uses Shingo?

96
00:07:30,260 --> 00:07:36,410
There are a ton of websites and popular companies that are using Django, Instagram, YouTube, Spotify,

97
00:07:36,410 --> 00:07:39,230
Dropbox, Pinterest, Eventbrite and many more.

98
00:07:39,710 --> 00:07:44,660
So hopefully you have the notion here that if Django is good enough for these huge companies and web

99
00:07:44,660 --> 00:07:49,970
sites, it will probably be good enough for our own web applications and versatile enough for our needs.

100
00:07:51,000 --> 00:07:56,880
OK, we've only briefly given you an overview of the jingo framework, and at this time, I would suggest

101
00:07:56,880 --> 00:08:02,250
that you're good at Jingo Project Accom and have a browse through the documentation in the next lecture

102
00:08:02,250 --> 00:08:03,330
and series of lectures.

103
00:08:03,360 --> 00:08:08,940
We're going to dive into a lot more detail of how the framework is designed and operates, which you'll

104
00:08:08,940 --> 00:08:13,980
notice is going to end up relating highly to the upcoming sections in which we learn about these core

105
00:08:13,980 --> 00:08:16,020
components that Django is built from.

106
00:08:16,560 --> 00:08:16,920
OK.

107
00:08:17,280 --> 00:08:17,720
Thanks.

108
00:08:17,730 --> 00:08:18,870
And I'll see you at the next lecture.

