django+mysql+nginx+wsgi+python2.7

建站

简单学习了一下django,顺便安装了mysql,nginx,wsgi,python,在云服务器上建了一个小demo网站。
传统的一站式建站方案有:
lamp:linux+apache+mysql+php/python
lnmp:linux+nginx+mysql+php/python
等等等等
但是万变不离其宗,理解整个服务是怎么回事才是最重要的,虽然博主也不是很了解,但是,去理解每个部分到底做了什么事情,都有哪些方案,优缺点是什么才是值得思考的。不过,框架那么多,只能慢慢学了,了解得多了,自然水到渠成。

django

django是一个python下的web框架,主要是后端逻辑的实现。Python下有许多款不同的 Web 框架。django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于django。 django可以说是一家独大,很有学习的必要。不过django比较重量级,不适合新手,推荐一个比较轻量级的python web框架Flask。
学习django网站:
https://www.runoob.com/django/django-tutorial.html
按照上面的走一遍大概就能学明白了。
想玩得很6的话,还是要继续深入才行。
博主的理解:
django就是一个基于python写后端的框架,访问mysql等数据库服务已经封装好,返回请求的html文件也封装在框架之中。让开发人员可以更加专注于后端的数据逻辑。
另外:vue+nodejs,前端,专注于如何完善html页面
(注:博主也就看了一两天,都是简单的理解,如有错,勿当真)

mysql

安装一下,见另一篇博客:https://blog.csdn.net/u013095333/article/details/93641899
在django添加一个模型用于访问mysql,需要进行配置生成,这一部分见:https://www.runoob.com/django/django-model.html
完成之后就可以在django框架中使用封装好的python函数直接调用mysql数据库了

nginx

nginx是一个反向代理工具,业界称之为web容器。另一个很著名的是Apache。其主要的作用是,nginx监听的是 IP+80,或者是 域名+80,因为所有web请求默认为80端口,那么在访问网站时只需要输入IP或者域名了。如果我们在启动django工程时,没有通过nginx代理,而是直接指定一个端口,比如9001,那么访问时就只能是IP+9001了,这样显然是不合适的。除此之外,nginx主要是针对大型网站,请求量较大时做负载均衡等。
nginx安装,请参考这篇文章:https://www.runoob.com/linux/nginx-install-setup.html
配置信息:
在这里插入图片描述
在server中进行配置,蓝框中表示nginx向外监听的信息。监听到信息后,根据信息路径匹配location,匹配上哪个就将信息转发到那个uwsgi服务。(具体如何匹配请自行百度)
在这里配置的信息是表示从localhost+80端口监听到的信息,转发至地址为127.0.0.1+9090的uwsgi服务了。这里也可以不配置为80,可以为任意合法值,但是一般约定为80。

wsgi

Web Server Gateway Interface 的缩写,即 Web 服务器网关接口。
可参考:https://www.jianshu.com/p/29f66eb4e55a
主要用途:
nginx反向代理时,其实可以直接将web浏览器的请求信息发送到django框架的。这样django框架也可以正常运行。但是python还有很多其他的web框架,比如Flask,这样部署的时候就会有局限性(具体是啥博主还没有理解),所以需要WSGI规范进一步转发。
wsgi安装:https://www.runoob.com/python3/python-uwsgi.html
wsgi配置文件:
在这里插入图片描述
配置文件中本可以增加很多内容,不过核心的就这么几个。
socket:uwsgi接受转发的地址,和nginx中的配置应当一致
chdir:django项目地址
wsgi-file:django项目中wsgi.py文件,这个文件是框架自动生成的,专门用于wsgi调用
daemonize:uwsgi的log位置

概念说得有点混乱,具体请参考:
https://blog.csdn.net/yjk13703623757/article/details/79457913

整个调用过程

1、web端产生http请求
2、http请求被nginx监听到
3、nginx根据请求地址信息,转发至对应wsgi服务
4、wsgi服务调用django中的wsgi.py
5、wsgi.py根据request信息,运行django中的逻辑,得到response返回
6、依次返回至web端,整个过程结束

发布了164 篇原创文章 · 获赞 26 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/u013095333/article/details/94161396