django用什么部署(django项目部署到本地)

如题所述

第1个回答  2024-09-05

导读:本篇文章首席CTO笔记来给大家介绍有关django用什么部署的相关内容,希望对大家有所帮助,一起来看看吧。

Django应用的容器化部署

部署使用容器化的方式,以容器的方式来运行。

首先,创建Dockerfile:

接着,进入Dockerfile文件目录,执行命令构建镜像,镜像名称是myproject:v1:dockerbuild-tmyproject:v1.

构建完成后,可以查看到我们刚刚创建的镜像:

最后,启动容器:dockerrun-d-p9999:8000-v/home/myproject/:/myproject/--namemyproject1myproject:v1

如何用Nginx部署Django

如果你在windows上开发的django项目。部署的话,需要分三步。

第一步:在linux下下载python用的依赖包,搭建python环境。将windows下的项目复制到linux下,使用django自带服务进行启动。

第二步:下载uwsgi模块并且编写配置文件来替代django自带的服务模块。

第三步:下载nginx包,编译安装。然后创建配置文件,配置nginx启动django项目的信息。然后访问即可。

如何使用WSGI部署Django

如何使用Apache和mod_wsgi部署Django?

用Apache和mod_wsgi部署Django项目是一个第三方的,测试的方法来得到Django生产环境。

mod_wsgi是一个Apache模块,可以托管任何PythonWSGI应用程序,包括Django。Django将与支持mod_wsgi的任何版本的Apache一起工作。

官方mod_wsgi文档是太棒了!它是所有关于如何使用mod_wsgi的细节的来源。您可能需要先从安装和配置文档开始。

Basicconfiguration?

一旦您安装并激活了mod_wsgi,请编辑Apache服务器的httpd.conf文件并添加以下内容。如果你的Apache版本低于2.4,请将Requireallgranted替换成Allowfromall并在上一行添加Orderdeny,allow.

WSGIScriptAlias//path/to/mysite.com/mysite/wsgi.py

WSGIPythonPath/path/to/mysite.com

Directory/path/to/mysite.com/mysite

Fileswsgi.py

Requireallgranted

/Files

/Directory

WSGIScriptAlias行中的第一个位是您要在其上(/指示根URL)的服务应用程序的基本URL路径,第二个位置是“WSGI文件“-见下面-在您的系统上,通常在您的项目包(在本例中mysite)。这告诉Apache使用该文件中定义的WSGI应用程序来提供给定URL下面的任何请求。

TheWSGIPythonPathlineensuresthatyourprojectpackageisavailableforimportonthePythonpath;inotherwords,thatimportmysiteworks.

TheDirectorypiecejustensuresthatApachecanaccessyourwsgi.pyfile.

接下来,我们需要确保这个wsgi.py与WSGI应用程序对象存在。从Django版本1.4起,startproject将为您创建一个;否则,您需要创建它。请参阅WSGIoverviewdocumentation以获取您应该放入此文件的默认内容,以及您可以添加到其中的其他内容。

警告

如果多个Django站点在单个mod_wsgi进程中运行,则所有这些站点将使用首先运行的设置。这可以通过改变:

os.environ.setdefault("DJANGO_SETTINGS_MODULE","{{project_name}}.settings")

在wsgi.py中:

os.environ["DJANGO_SETTINGS_MODULE"]="{{project_name}}.settings"

或者通过usingmod_wsgidaemonmode,并确保每个站点在其自己的守护进程中运行。

使用虚拟机?

Ifyouinstallyourproject’sPythondependenciesinsideavirtualenv,you’llneedtoaddthepathtothisvirtualenv’sdirectorytoyourPythonpathaswell.如果你的python项目在一个依赖虚拟机的python环境中,你需要将路径添加虚拟机的site-packages目录到你的python路径Todothis,addanadditionalpathtoyourWSGIPythonPathdirective,withmultiplepathsseparatedbyacolon(:)ifusingaUNIX-likesystem,orasemicolon(;)ifusingWindows.如果目录路径的任何部分包含空格字符,则必须引用WSGIPythonPath的完整参数字符串:

WSGIPythonPath/path/to/mysite.com:/path/to/your/venv/lib/python3.X/site-packages

请确保为您的virtualenv指定正确的路径,并将正确的Python版本替换为python3.X。python3.4)。

采用mod_wsgi守护进程模式?

“Daemon模式”是运行mod_wsgi的推荐模式(在非Windows平台上)。需要通过WSGIDaemonProcess和WSGIProcessGroup指令来实现Django实例运行在守护进程组中如果使用守护程序模式,则上述配置所需的进一步更改是您不能使用WSGIPythonPath;而应使用WSGIDaemonProcess的python-path选项,例如:

WSGIDaemonProcessexample.compython-path=/path/to/mysite.com:/path/to/venv/lib/python2.7/site-packages

WSGIProcessGroupexample.com

如果您要在子目录(本示例中为)中投放您的项目,可以将WSGIScriptAlias添加到上面的配置中:

WSGIScriptAlias/mysite/path/to/mysite.com/mysite/wsgi.pyprocess-group=example.com

Seetheofficialmod_wsgidocumentationfordetailsonsettingupdaemonmode.

Servingfiles?

Django不提供文件本身;它将该作业留给您选择的任何Web服务器。

我们建议使用单独的Web服务器(即不运行Django的服务器)来提供媒体。这里有一些很好的选择:

Nginx

Apache的精简版本

但是,如果您无法选择在与Django相同的ApacheVirtualHost上提供媒体文件,则可以将Apache设置为将某些网址用作静态媒体,而将其他网址用于Django的mod_wsgi接口。

ThisexamplesetsupDjangoatthesiteroot,butexplicitlyservesrobots.txt,favicon.ico,anyCSSfile,andanythinginthe/static/and/media/URLspaceasastaticfile.所有其他网址将使用mod_wsgi:

Alias/robots.txt/path/to/mysite.com/static/robots.txt

Alias/favicon.ico/path/to/mysite.com/static/favicon.ico

Alias/media//path/to/mysite.com/media/

Alias/static//path/to/mysite.com/static/

Directory/path/to/mysite.com/static

Requireallgranted

/Directory

Directory/path/to/mysite.com/media

Requireallgranted

/Directory

WSGIScriptAlias//path/to/mysite.com/mysite/wsgi.py

Directory/path/to/mysite.com/mysite

Fileswsgi.py

Requireallgranted

/Files

/Directory

IfyouareusingaversionofApacheolderthan2.4,replaceRequireallgrantedwithAllowfromallandalsoaddthelineOrderdeny,allowaboveit.

Servingtheadminfiles?

当django.contrib.staticfiles位于INSTALLED_APPS中时,Django开发服务器会自动提供管理应用程序(以及任何其他已安装的应用程序)的静态文件。但是,当您使用任何其他服务器布局时不是这样。您负责设置Apache,或您使用的任何Web服务器,以提供管理文件。

管理文件位于Django发行版的django/contrib/admin/static/admin中。

Westronglyrecommendusingdjango.contrib.staticfilestohandletheadminfiles(alongwithaWebserverasoutlinedintheprevioussection;thismeansusingthecollectstaticmanagementcommandtocollectthestaticfilesinSTATIC_ROOT,andthenconfiguringyourWebservertoserveSTATIC_ROOTatSTATIC_URL),butherearethreeotherapproaches:

在文档根目录中创建一个指向管理静态文件的符号链接(这可能需要Apache配置中的+FollowSymLinks)。

使用如上所示的Alias指令,将适当的网址(可能是STATIC_URL+admin/)别名到管理文件的实际位置。

复制admin静态文件,使它们存在于Apache文档根目录下。

AuthenticatingagainstDjango’suserdatabasefromApache?

Django提供了一个处理程序,允许Apache直接对Django的身份验证后端进行身份验证。请参阅mod_wsgiauthenticationdocumentation。

IfyougetaUnicodeEncodeError?

如果您正在利用Django的国际化功能(请参阅Internationalizationandlocalization),并且您打算允许用户上传文件,则必须确保用于启动Apache的环境配置为接受非-ASCII文件名。如果未正确配置环境,则在调用类似于os.path中的函数时,将触发UnicodeEncodeError异常,该函数包含非ASCII字符。

为了避免这些问题,用于启动Apache的环境应包含类似于以下内容的设置:

exportLANG='en_US.UTF-8'

exportLC_ALL='en_US.UTF-8'

请查阅您的操作系统的文档以获取适当的语法和位置来放置这些配置项;/etc/apache2/envvars是Unix平台上的常见位置。将这些语句添加到环境后,重新启动Apache。

目录

如何使用Django与Apache和mod_wsgi

基本配置

使用virtualenv

使用mod_wsgi守护程序模式

提供文件

提供管理文件

对来自Apache的Django用户数据库进行身份验证

如果您得到UnicodeEncodeError

浏览

上一页:如何使用WSGI部署

下一步:对来自Apache的Django用户数据库进行身份验证

你在这里:

Django1.8.2.dev20150513143415documentation

部署Django

如何使用Django与Apache和mod_wsgi

如何使用WSGI进行部署

“操作指南”

这一页

显示源

快速搜索

输入搜索字词或模块,类或函数名称。

最后更新:

2015年5月13日

Django部署——uwsgi+Nginx(超详细)

环境:

python3.6

centos7

Django1.11

用Django写了个小网站,只能在自己本地跑一跑!这怎么行?听说可以部署在云服务器上,这样别人就可以访问了!

从哪儿开始?就从Django开始吧!老规矩,按步骤:

这里不讲Django项目实施过程,假设你已经写了一个Django项目,并且在本地127.0.0.1:8000能够跑起来。喏,给你个参考,项目大概长这样:

也就是项目目录下的settings.py文件,主要强调几个地方:

①关闭DEBUG模式:

②修改ALLOWED_HOSTS:

③配置静态文件存放路径:

修改好配置之后执行:

这个没什么说的。。。在自己的云服务器上装好这两个工具

安装好uwsgi后最好验证一下,验证方法:

创建一个test.py文件:

启动uwsgi服务器:

如果可以正常启动而不报错那就应该没问题,不放心的话再在终端验证一下:

在uwsgi.ini里进行如下配置:

找到nginx的配置文件夹,centos7的nginx配置文件在/etc/nginx下,该路径下有一个nginx.conf总配置文件,还有两个文件夹./conf.d、./default.d,我们将nginx.conf复制一份到conf.d文件夹下,命名为nginx.conf(或者项目名.conf)进行如下修改(根据中文注释进行相应配置即可):

进入uwsgi.ini文件夹下执行:

在终端执行:

参考资料:

刘江的博客

博客园

知乎问答

无名Blog

自强学堂Django教程

Django文档

empty_xlBlog

[Django]部署(一)

Django部署也挺方便,我用过以下三种方式,各自适合特定的场景。

不要看不起Django自带server,一个命令解决部署问题,虽然性能不高,但有些场景,这个方法最合适。runserver0.0.0.0:80就能在局域网里开启Django服务,适合用户不多,性能要求不要的场景。

可以采用Apache+mod_wsgi或者IIS+wfastcgi部署,相比之下IIS更方便一些,毕竟微软自带的工具。

使用最广泛的就是nginx+uwsgi的部署方式,教程很多。另外现在docker一键部署,更是省时省力。

如何在阿里云上部署django网站

Django的部署建议放在Linux系统上。比较易于新手入门的Linux服务器发布版应该是Ubuntu,aliyun上目前最新版本应该是16.04,建议64位。

如果你是新网站,没有多少访问量,建议1核1内存或者2G内存,1-2M的宽带就足够了。最近双十一还有活动。

部署,安装Nginx:

apt?install?nginx

不知道你的Django项目是python2还是Python3,如果选用uwsgi部署方式,除了uwsig需要装一个uwsgi-plugin-python或者uwsgi-plugin-python3

剩下的看官方文档的uwsgi部署部分基本就ok了,因为全写实在太长了,还有的uwsgi配置文件。

结语:以上就是首席CTO笔记为大家整理的关于django用什么部署的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django用什么部署的相关内容别忘了在本站进行查找喔。

logo设计

创造品牌价值

¥500元起

APP开发

量身定制,源码交付

¥2000元起

商标注册

一个好品牌从商标开始

¥1480元起

公司注册

注册公司全程代办

¥0元起

    官方电话官方服务
      官方网站八戒财税知识产权八戒服务商企业需求数字市场

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网