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

django项目如何调试(2023年最新整理)

发布网友 发布时间:2024-09-30 02:09

我来回答

1个回答

热心网友 时间:2024-09-30 23:03

导读:很多朋友问到关于django项目如何调试的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

如何利用pycharm调试Django

在scriptparameters里写上runserver,就可以运行debug模式了,纯手打,有问题可以问我,远程操作

求Django大神帮忙,如何才能调试出。

提示很清楚了,没有settings模块(settings可能是django.conf文件夹中的,也能是你项目的settings.py文件)首先要找到出错的文件,可以截个错误图?

Django部署在linux下,如何调试?

就正常的print,就可以在日志里面找到部署容器log里面找到输出。

要调试一个用java写的后端,django写的前端的web应用应该怎么调试

在以前,你选择Pythonweb架构会受制于可用的web服务器,反之亦然。如果架构和服务器可以协同工作,那你就走运了:

但你有可能面对(或者曾有过)下面的问题,当要把一个服务器和一个架构结合起来是发现他们不是被设计成协同工作的:

基本上你只能用可以一起运行的而非你想要使用的。

那么,你怎么可以不修改服务器和架构代码而确保可以在多个架构下运行web服务器呢?答案就是PythonWebServerGatewayInterface(或简称WSGI,读作“wizgy”)。

WSGI允许开发者将选择web框架和web服务器分开。现在你可以混合匹配web服务器和web框架,选择一个适合你需要的配对。比如,你可以在Gunicorn或者Nginx/uWSGI或者Waitress上运行Django,Flask,或Pyramid。真正的混合匹配,得益于WSGI同时支持服务器和架构:

WSGI是第一篇和这篇开头又重复问道问题的答案。你的web服务器必须具备WSGI接口,所有的现代PythonWeb框架都已具备WSGI接口,它让你不对代码作修改就能使服务器和特点的web框架协同工作。

现在你知道WSGI由web服务器支持,而web框架允许你选择适合自己的配对,但它同样对于服务器和框架开发者提供便利使他们可以专注于自己偏爱的领域和专长而不至于相互牵制。其他语言也有类似接口:java有ServletAPI,Ruby有Rack。

说这么多了,你肯定在喊,给我看代码!好吧,看看这个极简的WSGI服务器实现:

#TestedwithPython2.7.9,LinuxMacOSX

importsocket

importStringIO

importsys

classWSGIServer(object):

address_family=socket.AF_INET

socket_type=socket.SOCK_STREAM

request_queue_size=1

def__init__(self,server_address):

#Createalisteningsocket

self.listen_socket=listen_socket=socket.socket(

self.address_family,

self.socket_type

)

#Allowtoreusethesameaddress

listen_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)

#Bind

listen_socket.bind(server_address)

#Activate

listen_socket.listen(self.request_queue_size)

#Getserverhostnameandport

host,port=self.listen_socket.getsockname()[:2]

self.server_name=socket.getfqdn(host)

self.server_port=port

#ReturnheaderssetbyWebframework/Webapplication

self.headers_set=[]

defset_app(self,application):

self.application=application

defserve_forever(self):

listen_socket=self.listen_socket

whileTrue:

#Newclientconnection

self.client_connection,client_address=listen_socket.accept()

#Handleonerequestandclosetheclientconnection.Then

#loopovertowaitforanotherclientconnection

self.handle_one_request()

defhandle_one_request(self):

self.request_data=request_data=self.client_connection.recv(1024)

#Printformattedrequestdataala'curl-v'

print(''.join(

'{line}\n'.format(line=line)

forlineinrequest_data.splitlines()

))

self.parse_request(request_data)

#Constructenvironmentdictionaryusingrequestdata

env=self.get_environ()

#It'stimetocallourapplicationcallableandget

#backaresultthatwillbecomeHTTPresponsebody

result=self.application(env,self.start_response)

#Constructaresponseandsenditbacktotheclient

self.finish_response(result)

defparse_request(self,text):

request_line=text.splitlines()[0]

request_line=request_line.rstrip('\r\n')

#Breakdowntherequestlineintocomponents

(self.request_method,#GET

self.path,#/hello

self.request_version#HTTP/1.1

)=request_line.split()

defget_environ(self):

env={}

#ThefollowingcodesnippetdoesnotfollowPEP8conventions

#butit'sformattedthewayitisfordemonstrationpurposes

#toemphasizetherequiredvariablesandtheirvalues

#

#RequiredWSGIvariables

env['wsgi.version']=(1,0)

env['wsgi.url_scheme']='http'

env['wsgi.input']=StringIO.StringIO(self.request_data)

env['wsgi.errors']=sys.stderr

env['wsgi.multithread']=False

env['wsgi.multiprocess']=False

env['wsgi.run_once']=False

#RequiredCGIvariables

env['REQUEST_METHOD']=self.request_method#GET

env['PATH_INFO']=self.path#/hello

env['SERVER_NAME']=self.server_name#localhost

env['SERVER_PORT']=str(self.server_port)#8888

returnenv

defstart_response(self,status,response_headers,exc_info=None):

#Addnecessaryserverheaders

server_headers=[

('Date','Tue,31Mar201512:54:48GMT'),

('Server','WSGIServer0.2'),

]

self.headers_set=[status,response_headers+server_headers]

#ToadheretoWSGIspecificationthestart_responsemustreturn

#a'write'callable.Wesimplicity'ssakewe'llignorethatdetail

#fornow.

#returnself.finish_response

deffinish_response(self,result):

try:

status,response_headers=self.headers_set

response='HTTP/1.1{status}\r\n'.format(status=status)

forheaderinresponse_headers:

response+='{0}:{1}\r\n'.format(*header)

response+='\r\n'

fordatainresult:

response+=data

#Printformattedresponsedataala'curl-v'

print(''.join(

'{line}\n'.format(line=line)

forlineinresponse.splitlines()

))

self.client_connection.sendall(response)

finally:

self.client_connection.close()

SERVER_ADDRESS=(HOST,PORT)='',8888

defmake_server(server_address,application):

server=WSGIServer(server_address)

server.set_app(application)

returnserver

if__name__=='__main__':

iflen(sys.argv)2:

sys.exit('ProvideaWSGIapplicationobjectasmodule:callable')

app_path=sys.argv[1]

module,application=app_path.split(':')

module=__import__(module)

application=getattr(module,application)

httpd=make_server(SERVER_ADDRESS,application)

print('WSGIServer:ServingHTTPonport{port}...\n'.format(port=PORT))

httpd.serve_forever()

这比第一篇的代码长的多,但也足够短(只有150行)来让你理解而避免在细节里越陷越深。上面的服务器可以做更多——可以运行你钟爱web框架所写基本的web应用,Pyramid,Flask,Django,或其他PythonWSGI框架.

不相信我?你自己试试看。保存上面的代码为webserver2.py或者直接在Github下载。如果你不传入任何参数它会提醒然后推出。

$pythonwebserver2.py

ProvideaWSGIapplicationobjectasmodule:callable

linuxdjangouwsgi+nginx怎么调试

1.python和django的环境搭建

(1)下载anaconda3并安装

wget

shAnaconda3-2.3.0-Linux-x86_64.sh

一路enter键,然后提示是否加入到环境变量时,输入yes即可。

(2)安装django

直接pipinstalldjango

安装成功之后就可以新建项目

django-adminstartprojectdemosite

cddemosite

pythonmanage.pystartappblog

pythonmanage.pymigrate(要执行这个命令,让django生成可运行的app,否则后面使用uwsgi会报错)

(3)运行django

pythonmanage.pyrunserver

curl127.0.0.1:8000进行如果可以正常访问,就说明django安装成功。

2.安装uwsgi

(1)centOS

yuminstallzlib-develbzip2-develpcre-developenssl-develncurses-develsqlite-develreadline-develtk-devel

pipinstalluwsgi

uwsgi--version#查看uwsgi版本

(2)test.py

然后,RunuWSGI:

uwsgi--http:8000--wsgi-filetest.py

defapplication(env,start_response):

start_response('200OK',[('Content-Type','text/html')])

return["HelloWorld"]#python2

#return[b"HelloWorld"]#python3

(3)ubuntu可以能会出现错误:

如果出现错误,!!!nointernalroutingsupport,rebuildwithpcresupport!!!

sudoapt-getinstalllibpcre3libpcre3-dev

sudopipuninstalluwsgi

sudoapt-getremoveuwsgi

sudopipinstalluwsgi

(4)测试

1)打开下面url,浏览器上应该显示helloworld

curl如果安装httpie模块的话使用http

如果显示正确是HelloWorld,说明上面的环节是畅通的

2)测试django

默认使用django新建工程会在app下面生成一个wsgi.py的文件

uwsgi--http:8000--wsgi-filewsgi.py直接这样也会报错

uwsgi--http:8000--wsgi-fileappname/wsgi.py

打开浏览器输入如果现实正确说明webclient--uwsgi---django是畅通的

3.安装配置nginx

(1)安装

wget

tarxfnginx-1.9.5.tar.gz

cdnginx-1.9.5

./configure--prefix=/usr/local/nginx--with-http_stub_status_module--with-http_gzip_static_module

makemakeinstall

或者参考

(2)配置文件

vi/usr/local/nginx/conf/nginx.conf

一般来说加入个server就OK了

参考配置如下

userroot;

worker_processes1;

#error_loglogs/error.log;

#error_loglogs/error.lognotice;

#error_loglogs/error.loginfo;

pidlogs/nginx.pid;

events{

useepoll;

worker_connections65535;

}

http{

includemime.types;

default_typeapplication/octet-stream;

#log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'

#'$status$body_bytes_sent"$http_referer"'

#'"$http_user_agent""$http_x_forwarded_for"';

#access_loglogs/access.logmain;

sendfileon;

#tcp_nopushon;

#keepalive_timeout0;

keepalive_timeout65;

#gzipon;

server{

listen8099;

server_name10.117.52.157;##对外访问的IP和端口号

access_log/tmp/cms/access.log;

error_log/tmp/cms/error.log;

#charsetkoi8-r;

#access_loglogs/host.access.logmain;

location/{

includeuwsgi_params;

uwsgi_pass127.0.0.1:8088;

uwsgi_read_timeout300;

}

#error_page404/404.html;

#redirectservererrorpagestothestaticpage/50x.html

#

#error_page500502503504/registration/500.html;

#location=/registration/500.html{

#roothtml;

#}

location/static/{

alias/root/cms/cms/static/;

indexindex.htmlindex.htm;

}

location/media/{

alias/root/cms/cms/media/;

}

}

}

(3)运行and重启

/usr/local/nginx/sbin/nginx

启动:nginxstart

重启:nginx-sreload

4.使用uwsgi的配置文件运行django

在确保nginx运行之后,就可以通过uwsgi来运行django了。nginx在最外层接收请求,静态的自己处理,动态的通过socket端口交给uwsgi来处理。

配置文件内容如下

[uwsgi]

socket=:8088#要和nginx对应的IP和端口号一致

chdir=/root/cms/cms#APP的目录

module=cms.wsgi#wsgi.py文件位置

touch-reload=/root/cms/cms/reload#重启只要输入命令touchreload文件即可

processes=4

threads=2

daemonize=/tmp/cms/wsgi.log#日志文件位置

放在APP的上一级目录

直接运行uwsgi--iniuwsgi.ini即可

如何直接在浏览器中查看和调试Django

按照官网指导安装好django

启动本地服务

浏览器输入链接便可以访问

当改变代码时,相应的页面便会发生变化,可以讲代码调试部分作为页面输出,这样便可以看到执行结果

主要参考官网指导part1便可以

结语:以上就是首席CTO笔记为大家整理的关于django项目如何调试的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

django项目如何调试(2023年最新整理)

1.python和django的环境搭建 (1)下载anaconda3并安装 wget shAnaconda3-2.3.0-Linux-x86_64.sh 一路enter键,然后提示是否加入到环境变量时,输入yes即可。 (2)安装django 直接pipinstalldjango 安装成功之后就可以新建项目 django-adminstartprojectdemosite cddemosite pythonmanage.pystartappblog pythonmanage.pymigra...

如何使用django框架(2023年最新整理)

使用Django命令生成一个项目的基本结构时,配置信息默认保存在和项目目录同名的目录下的settings.py文件里,在实际的开发中,对于一个项目而言,这样往往是不合适的,需要将settings配置文件拆分为几个文件,线上和线下都会使用的文件放置到base.py文件里,线上的放置在product.py文件里,开发测试的文件放置在develop.py文件里。

django如何配置(2023年最新整理)

8、开始一个django项目 9、运行服务器,测试Django项目 10、使用地址访问项目 python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件在Django项目开发中,不能像正常web开发一样通过'imgs/bg.jpg'访问本地静态文件,需要做一些配置,才能实现静态文件的访问。一、首先在项目根路径...

如何运行一个django项目(2023年最新整理)

python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件 在Django项目开发中,不能像正常web开发一样通过'imgs/bg.jpg'访问本地静态文件,需要做一些配置,才能实现静态文件的访问。 一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存...

pycharmdjango怎么运行(2023年最新整理)

如何利用pycharm调试Django用pycharm新建django项目或者打开ddjango项目然后runmanager.py如果报错点editconfiguration后面加上runserver就起来了 pycharmdjango怎么打开下载Django包,解压缩。CMD进入解压路径下。执行:pythonsetup.pyinstall增加环境变量:C:\Python27\Scripts 怎么在pycharm中使用django首先在黑框...

如何django项目(2023年最新整理)

django项目生产环境部署 安装uwsgi 1、pip3installuwsgi 2、在django项目下新建myuwsgi.ini文件(文件名可自取) 3、进入项目根目录执行: 没有报错则启动成功 4、配置nginx 在nginx同级目录下创建nginx.conf-my.conf文件 进入nginx.conf配置 重启nginx-sreload 结语:以上就是首席CTO笔记为大家介绍的关于如何django项目...

pycharm怎么使用django(2023年最新整理)

PyCharm发现里面有文件,问是否要加入工程,选Yes。然后,我们新建的项目里面就有了。关键的问题是调试。由于Django工程的运行是这样的:?python3?./manage.py?runserver 所以这里要对其进行配置。选择菜单[Run]--[EditConfigurations...]弹出如下对话框。点左上角的+号,添加一个Debug配置,并如下配置:...

pycharm免费版怎么用django(2023年最新解答)

如何利用pycharm调试Django步骤如下:1首先在Pycharm中打开你的Django项目,点击上面编辑栏上的run-EditConfigurations如下图1:2在打开的窗口中,把Defaults的+号打开,点击Python。然后在出现的右侧窗口中输入以下数据:Script:manage.pyScriptParameters:runserver。输入完毕后右下角点击Apply按钮如下图2:3...

django怎么用(2023年最新整理)

为Django开发设置Vscode:在第一个视频中,您将学习如何在vscode文本编辑器上为Django建立开发环境。使用Django创建博客文章模型:该视频涵盖了为博客文章创建模型的所有细节,从标题,作者到标签。将富文本编辑器添加到Django项目:在这里,您将学习如何将富文本编辑器添加到表单或Django项目中的任何位置。 设计帖子页面:有关使...

django如何使用(2023年最新整理)

Python中Django如何使用? django1.9.5python3.4.4 文件结构 在一个爬虫脚本中将爬取的数据通过django自带的model保存到数据库 修改的文件(其余pycharm新建Django项目生成,未修改): #testapp/models.pyfromdjango.dbimportmodels?classProblem(models.Model):??title=models.CharField(max_length=100,default="")??

django如何创建项目 python django项目 django完整项目 django大型项目 与django有关的项目实例 django项目实例 创建django项目 部署django项目 django多项目部署
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
老板燃气灶使用着时间一长。自动灭火 老板燃气灶灭火解决 ...出现“跨站请求伪造攻击,已被拦截!请关闭当前窗口重新打开浏览器... 1.两个数的公因数和两个数的最大公因数之间的关系是什么? 2.如果自然... 交换机怎么查IP地址 桌面右下角的小喇叭不见了?则么弄? CSRF跨站请求伪造 CSRF(跨站请求伪造)简介 什么是 CSRF(跨站请求伪造)? 如何防御它? 132kw电机的摩擦压力机每小时耗电多少度 django框架如何实现与数据库的交互(2023年最新整理) 我在观看钉钉直播时 QQ来消息 我不小心点开了它 但是我是通过后台返回的... 天汇宝的资金被用在哪里 天汇宝2号是什么 天汇宝什么 央企工作为什么不要轻易辞职? 为何央企不能轻易辞职? 天汇宝产品简介 ...北流 桂平 容县等地.四个人...请大家推荐一下路线和其他方面的建议... ...指点一下行程安排住宿及旅游线路!谢谢!大概8个人左右两天一夜从成都... 青岛市于家丰城有什么好玩的地方吗 玉华峰中华各地玉华山 空调外机不运行是不是省电些? 空调外机不停会不会影响耗电 空调外机一直运转不停,耗电吗? 24岁本命年要佩戴什么 本命年龙年男生要佩戴什么 男生本命年龙年佩戴什么好 24年本命年带什么好? 2024年龙年本命年佩戴什么2024年龙年本命年可以佩戴哪些饰品? 北京汽车bj40保养灯归零的方法是什么? 如何在公网ip上部署django(2023年最新分享) django的传参怎么国际化(2023年最新整理) 如何退出Django虚拟环境(2023年最新分享) django中怎么设置全局变量(2023年最新整理) B国货币对A国货币升值20%,是B国货币升值还是A国货币升值?如果是B... 如果A国攻打B国,那么他们的汇率是如何变动? 一个国家A向另一个国家B投资,国家A的货币变化是什么 ...天汇宝”与银行理财和一般券商理财产品有何区别? 天汇宝产品14天和60天哪个好一点 送女友的八大暖心礼物,送女友礼物排行榜 最打动女人心的生日礼物 ...后悔 艰涩 拖沓 磨练 埋怨 冷漠 失魂落魄 震耳欲聋 大吃一惊... 天天利财和金自来和天汇宝有风险吗 天汇宝产品特点 女生失眠的原因就三种 女生失眠睡不着什么原因 恒温恒湿空调与一般空调比有什么特点 中美技术脱钩对美国半导体产业影响几何? 责任担当方面精选102句 大学档案是自己拿着还是学校邮寄?