问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么开启django服务(2023年最新整理)

发布网友 发布时间:2024-09-29 08:43

我来回答

1个回答

热心网友 时间:2024-12-01 19:35

导读:今天首席CTO笔记来给各位分享关于怎么开启django服务的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

如何在服务器上部署Django项目并使其在后台一直运行

前几天老师让我把一个Django项目(爬虫网页)放到校园内网上,但是我想先用自己的服务器来尝试一下。之前刚好有在DigitalOcean上买过服务器用来运行ss脚本,平时服务器一直放着没啥用,所以就拿它来试验一下。

废话不多说,第一步通过WinSCP软件把Django文件传到服务器上。

在服务器中安装Django需要的环境和我所需要的Python第三方库。

以上所有步骤完成后,还需要进行一步操作,这是我经历的一个坑。打开Django文件目录中的settings.py,把ALLOWED_HOSTS=[]改为ALLOWED_HOSTS=["*"]。

在服务器中打开到manage.py所在的目录,输入命令:

python3manage.pyrunserver0.0.0.0:8000

然后按下回车,在浏览器中输入:该服务器IP地址:8000,大功告成!

Attention:

1.python3不是特定的,是根据你的Django项目所需要的环境指定的。

2.8000是端口号,可以修改。

如果想要Django项目一直运行,关闭终端后还在运行,即需要运行如下命令,nohupcommand,command即位上文所说的python3manage.pyrunserver0.0.0.0:8000。

怎样搭建Django服务器环境

1.首先安装python,配置环境变量path:C:\Python27;C:\Python27\Scripts;

2.去django官网下载压缩包Django-1.8.3.tar.gz,然后解压在C盘,输入以下命令:

cd???C:\Django-1.8.3

python??setup.py???install

命令运行后,Django环境就安装好了,然后配置环境变量path:C:\Python27\Lib\site-packages\Django-1.8.3-py2.7.egg\django\bin

3.在命令终端输入以下命令导入并检查django安装情况:

python

import?django

django.VERSION

4.创建一个Django工程

django-admin??startproject??cms678(工程名)

这样在用户目录下就会产生一个cms678的工程文件夹。?

manage.py:可以在命令行下管理这个项目。

__init__.py:将这个项目目录作为Python的一个包。

settings.py:?项目的配置文件。

urls.py:定义了Django项目中的URL路由表,指定了URL与被调用类之间的对应关系。

wsgi.py:?这个是Django1.4中新添加的默认Web服务器网关接口。

命令窗口切换到cms678文件夹,然后运行命令:python?manage.py?runserver,启动当前目录工程。

浏览器输入

到此基本操作就结束啦?:-)

Django源码阅读(一)项目的生成与启动

诚实的说,直到目前为止,我并不欣赏django。在我的认知它并不是多么精巧的设计。只是由功能堆积起来的"成熟方案"。但每一样东西的崛起都是时代的选择。无论你多么不喜欢,但它被需要。希望有一天,python能有更多更丰富的成熟方案,且不再被诟病性能和可维护性。(屁话结束)

取其精华去其糟粕,django的优点是方便,我们这次源码阅读的目的是探究其方便的本质。计划上本次源码阅读不会精细到每一处,而是大体以功能为单位进行解读。

django-adminstartprojectHelloWorld即可生成django项目,命令行是exe格式的。

manage.py把参数交给命令行解析。

execute_from_command_line()通过命令行参数,创建一个管理类。然后运行他的execute()。

如果设置了reload,将会在启动前先check_errors。

check_errors()是个闭包,所以上文结尾是(django.setup)()。

直接看最后一句settings.INSTALLED_APPS。从settings中抓取app

注意,这个settings还不是我们项目中的settings.py。而是一个对象,位于django\conf\__init__.py

这是个Settings类的懒加载封装类,直到__getattr__取值时才开始初始化。然后从Settings类的实例中取值。且会讲该值赋值到自己的__dict__上(下次会直接在自己身上找到,因为__getattr__优先级较低)

为了方便debug,我们直接写个run.py。不用命令行的方式。

项目下建个run.py,模拟runserver命令

debug抓一下setting_mole

回到setup()中的最后一句apps.populate(settings.INSTALLED_APPS)

开始看apps.populate()

首先看这段

这些App最后都会封装成为AppConfig。且会装载到self.app_configs字典中

随后,分别调用每个appConfig的import_models()和ready()方法。

App的装载部分大体如此

为了方便debug我们改写下最后一句

res的类型是Commanddjango.contrib.staticfiles.management.commands.runserver.Commandobjectat0x00000101ED5163A0

重点是第二句,让我们跳到run_from_argv()方法,这里对参数进行了若干处理。

用pycharm点这里的handle会进入基类的方法,无法得到正确的走向。实际上子类Commond重写了这个方法。

这里分为两种情况,如果是reload重载时,会直接执行inner_run(),而项目启动需要先执行其他逻辑。

django项目启动时,实际上会启动两次,如果我们在项目入口(manage.py)中设置个print,会发现它会打印两次。

第一次启动时,DJANGO_AUTORELOAD_ENV为None,无法进入启动逻辑。会进入restart_with_reloader()。

在这里会将DJANGO_AUTORELOAD_ENV置为True,随后重启。

第二次时,可以进入启动逻辑了。

这里创建了一个django主线程,将inner_run()传入。

随后本线程通过reloader.run(django_main_thread),创建一个轮询守护进程。

我们接下来看django的主线程inner_run()。

当我们看到wsgi时,django负责的启动逻辑,就此结束了。接下来的工作交由wsgi服务器了

这相当于我们之前在fastapi中说到的,将fastapi的app交由asgi服务器。(asgi也是django提出来的,两者本质同源)

那么这个wsgi是从哪来的?让我们来稍微回溯下

这个settings是一个对象,在之前的操作中已经从settings.py配置文件中获得了自身的属性。所以我们只需要去settings.py配置文件中寻找。

我们来寻找这个get_wsgi_application()。

它会再次调用setup(),重要的是,返回一个WSGIHandler类的实例。

这就是wsgiapp本身。

load_middleware()为构建中间件堆栈,这也是wsgiapp获取setting信息的唯一途径。导入settings.py,生成中间件堆栈。

如果看过我之前那篇fastapi源码的,应该对中间件堆栈不陌生。

app入口→中间件堆栈→路由→路由节点→endpoint

所以,wsgiapp就此构建完毕,服务器传入请求至app入口,即可经过中间件到达路由进行分发。

怎么在vps上搭建django服务器

安装pip

下载

[plain]viewplaincopy

#wget--no-check-certificate

解压并进入解压后的文件夹

[plain]viewplaincopy

#tarzvxf1.5.5.tar.gz

#cdpip-1.5.5/

安装

[plain]viewplaincopy

#pythonsetup.pyinstall

四、使用pip安装django

[plain]viewplaincopy

#pipinstalldjango

如何用Nginx部署Django

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

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

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

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

结语:以上就是首席CTO笔记为大家介绍的关于怎么开启django服务的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大学中大德指什么 驾考各科通过率是多少 驾考全部一次过的比例 驾考宝典科目一通过率多少 驾考宝典通过率怎么算的 .js 文件和 .mjs 文件的区别 .js是什么文 苹果13在哪切换4G网络 苹果13怎么把5g换成4g?苹果13设置4g网络方法介绍 iphone13如何更改网络信号 iphone13手机5G设置成4G教程 小程序如何访问django的接口(2023年最新分享) django如何实现免密登录(2023年最新分享) python2.7怎么装django(2023年最新分享) 宝宝口欲期爱吃手指,爸爸妈妈要如何干预? 婴儿口欲期需要注意哪些事项 我家宝宝进入口欲期了,我该如何进行护理呢? 满足宝宝口欲期的方法 口欲期的宝宝,应该如何正确干预? 面对宝宝的口欲期,家长该怎么做? 上海静安八门更衣柜 购买更衣柜有哪些地方需要考虑呢 购买更衣柜的注意事项 电脑去网上买好,还是到实体店好? 什么是头程? fba头程是什么意思?fba头程运输有哪些发货方式? 头程配送是什么意思? 一文详解国际物流中的头程二程! 头程运输是什么意思? 国际物流✈头程运输和尾程派送是什么意思? 20年了一直没办房产证,现在想办了该如何去做? 我家的房子,住了二十年了,没房产证,只有以前村里的证明,如何办理房产... 怎么让公网访问django项目(2023年最新分享) django如何用手机号登陆(2023年最新分享) Django怎么用mq(2023年最新分享) 企业职工和灵活就业人员社保按60%基数缴费2023 退休养老金能一样吗... ...我不知道如何去看"问题页面",请哪位仁兄给我一点建义? ...问问账号永久停封,是什么原因啊? 我没干什么违法的事啊 汽车硅胶防滑垫怎么样 汽车硅胶防滑垫怎么清洗干净 硅胶防滑布在家居当中有什么应用 ...的单词读不准,你说我是不是应该先学音标呢? 卵磷脂小体少量是什么意思 卵磷脂小体偶见是什么意思? 卵磷脂小体3+代表什么 卵磷脂小体+说明什么 一个时间继电器即有通电延时又有断电延时,有没有这样的 ‘’闭门造车"是有典故的,你能说出它的故事? 内存大的电影怎么通过手机复制到u盘 怎么用手机下载电影到U盘里呢? 怎么把手机电影下载到u盘上 请教不择人是什么意思? ...没有一个可以帮我,我只不过想结婚,让他们帮帮我都没有帮我的,全都...