當前位置:首頁 » 雲伺服器 » 如何調試伺服器上的django

如何調試伺服器上的django

發布時間: 2022-12-15 08:11:36

A. 怎樣搭建Django伺服器環境

1.首先安裝python配置環境變數path:C:Python27;C:Python27Scripts;

2.去django官網下載壓縮包Django-1.8.3.tar.gz,然後解壓在C盤,輸入以下命令:

cdC:Django-1.8.3

pythonsetup.pyinstall

命令運行後,Django環境就安裝好了,然後配置環境變數path:C:Python27Libsite-packagesDjango-1.8.3-py2.7.eggdjangoin

3.在命令終端輸入以下命令導入並檢查django安裝情況:

python

>>>importdjango

>>>django.VERSION

__init__.py:將這個項目目錄作為Python的一個包。

settings.py:項目的配置文件。

urls.py:定義了Django項目中的URL路由表,指定了URL與被調用類之間的對應關系。

wsgi.py:這個是Django1.4中新添加的默認Web伺服器網關介面。

命令窗口切換到cms678文件夾,然後運行命令:pythonmanage.pyrunserver,啟動當前目錄工程。

瀏覽器輸入http://127.0.0.1:8000/

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

B. 怎樣搭建Django伺服器環境

搭建Django伺服器環境方法詳見:http://jingyan..com/article/8ebacdf029d43549f75cd548.html

C. 如何在阿里雲伺服器部署Django

tomcat是一個web容器,java web項目相當與容器中的一個元素 ,當把java web項目部署到伺服器的時候 就相當於在容器裡面加入了一個元素 tomcat啟動的時候 tomcat容器會獲得裡面元素的相關信息 比如web項目的名稱

當用戶請求伺服器的時候 首先根據請求的一級域名找到你啟動的tomcat容器,容器在分析一級域名後面的請求字元竄截取請求的項目名字 ,根據項目名字 把請求信息發給 容器裡面與項目名字對應的web項目 然後web項目處理請求 處理完了 將響應信息 發給容器 容器在返回給用戶

首先你請求的地址是本機的ip地址 ,這樣請求能夠發送到本機上 , 那麼怎麼給本機的tomcat 呢 這關鍵點就是 埠了 請求會根據本機上所有開啟的程序的埠信息 給相應的程序

tomcat的默認埠是8080 所以你的請求地址需要加上:8080 當然你可以更改tomcat的埠比如80 這樣你就不用去在請求地址上加:8080 因為100以內的埠 會自動匹配

這個就是一個簡單的。

如果你有 webSphere 或者 weblogic 就需要復雜的配置了。不過基本都差不多。理解思想就可以了。

D. Django 運行開發伺服器時報錯

原因如下:

1、因代碼中的中文注釋問題的報錯

django項目的.py文件文件中加入了中文注釋,經常會因此報錯而導致無法運行,究其原因是編碼的問題,最後的解決辦法是直接在有中文注釋的.py文件的頂部加上:# -*-coding:utf-8 -*-

2、運行過程中的中文亂碼的報錯

(1)首先確保連接的資料庫的基礎設置是utf-8。

(4).debian里需要在~/.bashrc裡面最下面加入export LC_ALL=zh_CN.UTF-8或者直接運行export.UTF-8。

(5).最後直接reboot重啟伺服器,查看系統編碼,UTF-8中文生效,locale命令可以直接查看系統編碼設置,此時再運行django項目上傳中文名文件無誤。

E. 要調試一個用java寫的後端,django寫的前端的web應用應該怎麼調試

在以前,你選擇Pythonweb架構會受制於可用的web伺服器,反之亦然。如果架構和伺服器可以協同工作,那你就走運了:
但你有可能面對(或者曾有過)下面的問題,當要把一個伺服器和一個架構結合起來是發現他們不是被設計成協同工作的:
基本上你只能用可以一起運行的而非你想要使用的。
那麼,你怎麼可以不修改伺服器和架構代碼而確保可以在多個架構下運行web伺服器呢?答案就是(或簡稱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,Linux&MacOSX
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
#/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()
#.Then
#
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)
#
env=self.get_environ()
#It'
#
result=self.application(env,self.start_response)
#
self.finish_response(result)
defparse_request(self,text):
request_line=text.splitlines()[0]
request_line=request_line.rstrip('\r\n')
#
(self.request_method,#GET
self.path,#/hello
self.request_version#HTTP/1.1
)=request_line.split()
defget_environ(self):
env={}
#
#butit'
#
#
#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]
#_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(':callable')
app_path=sys.argv[1]
mole,application=app_path.split(':')
mole=__import__(mole)
application=getattr(mole,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
:callable

F. django中怎麼實現斷點

djangot 調試的兩種方法:

1.常用的print方法,由於使用python manage.py
runserver實際是通過啟動子進程的方式,子進程的標准輸出不知道是到哪兒了,所以只有讓調試伺服器不以子進程的方式進行,可以用如下命令:python
manage.py runserver
--noreload,這樣print出來的信息就可以在終端看到了,但是這樣作,每次python代碼有修改,就要重啟伺服器。

2.輸出log到終端:

LOGGING = {

'version': 1,

'disable_existing_loggers': False,

'formatters': {

'simple': {

'format': '%(levelname)s %(message)s'

G. 在阿里雲伺服器使用nginx+uwsgi+venv部署Django項目

1.首先先把項目上傳到阿里雲伺服器
2.需要安裝python3.0以上版本(centeros7自帶2.75版本)
3.在此不介紹如何安裝python高版本和虛擬環境

4.在項目根目錄創建虛擬環境,就像你在Pycharm里一樣
然後啟動虛擬環境

5.在虛擬環境下安裝你項目所需要的依賴
pip3 install requirements.txt
6.編寫nginx配置文件和uwsgi配置文件
配置如下
nginx.conf

注意編寫完nginx配置文件需要檢查語法
nginx -t 注意別忘記加;或者文章尾末多空格都會導致出錯
nginx -s reload 重啟nginx
uwsgi.ini配置如下

7.都配置好之後
啟動虛擬環境
在venv里 uwsgi uwsgi.ini 即可啟動你的項目

熱點內容
iphone重啟緩存 發布:2025-03-17 16:57:56 瀏覽:632
phpfloat 發布:2025-03-17 16:56:35 瀏覽:174
誅心演算法題 發布:2025-03-17 16:30:00 瀏覽:397
磁吸介面和安卓介面哪個好用 發布:2025-03-17 16:29:54 瀏覽:458
編程經典思想 發布:2025-03-17 16:27:45 瀏覽:621
崩壞腳本 發布:2025-03-17 16:22:39 瀏覽:50
敦煌的密碼在哪裡 發布:2025-03-17 16:19:21 瀏覽:898
編譯器決定程序運行的操作系統 發布:2025-03-17 16:17:47 瀏覽:705
android單詞 發布:2025-03-17 16:05:31 瀏覽:544
小型公司erp伺服器固定ip 發布:2025-03-17 15:56:52 瀏覽:168