'Python Django帶你構建Web應用,13個常見問題彙總'

"

1、django+python27+mysql的生產環境,想換成python3,請問需要哪些注意事項?生產環境數據不想被破壞,所以不敢輕易下手,希望大神指點一下?

關於python升級:

可以使用Python3自帶工具2to3,將python2的代碼轉換為python3。少部分代碼仍需手工轉換。

升級python版本後,第三方包的版本需要升級。有的第三方包不支持python3。這個時候可以嘗試使用2to3工具對第三包的python源代碼進行轉換,然後使用。這樣存在一定風險。無法轉換的,需要尋找替代包,應用服務器上對應的代碼需要修改。

關於django升級:

django1.5開始支持python3。同時django1.11是支持python2的最後的版本。如果使用的django版本大於等於1.5,則django版本可以不升級。如果django版本低於1.5,則需要升級django版本。升級django版本後,新版本不兼容的老的API都需要修改。這個工作量比較大。

升級django版本後,為django服務的第三方包需要對應升級。建議django不要立即使用最新版本,以免第三方包還不支持最新的django版本。

關於mysql:

mysqldb不支持python3,需要使用mysqlclient做數據庫API驅動。

django2.0只支持myslq5.5或者更高版本

一般性的版本升級注意事項。

代碼和數據做好備份

python和django升級後,上線前需要充分測試。

"

1、django+python27+mysql的生產環境,想換成python3,請問需要哪些注意事項?生產環境數據不想被破壞,所以不敢輕易下手,希望大神指點一下?

關於python升級:

可以使用Python3自帶工具2to3,將python2的代碼轉換為python3。少部分代碼仍需手工轉換。

升級python版本後,第三方包的版本需要升級。有的第三方包不支持python3。這個時候可以嘗試使用2to3工具對第三包的python源代碼進行轉換,然後使用。這樣存在一定風險。無法轉換的,需要尋找替代包,應用服務器上對應的代碼需要修改。

關於django升級:

django1.5開始支持python3。同時django1.11是支持python2的最後的版本。如果使用的django版本大於等於1.5,則django版本可以不升級。如果django版本低於1.5,則需要升級django版本。升級django版本後,新版本不兼容的老的API都需要修改。這個工作量比較大。

升級django版本後,為django服務的第三方包需要對應升級。建議django不要立即使用最新版本,以免第三方包還不支持最新的django版本。

關於mysql:

mysqldb不支持python3,需要使用mysqlclient做數據庫API驅動。

django2.0只支持myslq5.5或者更高版本

一般性的版本升級注意事項。

代碼和數據做好備份

python和django升級後,上線前需要充分測試。

Python Django帶你構建Web應用,13個常見問題彙總

2、剛學習django的nginx部署,一直不清楚處理高併發的原理,大神可以解釋下麼?

我簡單說一下我的理解。

django WSGI是單線程的,就是說一個請求處理完了才能響應另一個請求。

uWSGI(C語言書寫)+Django相比與單獨使用Django,通過多進程,發揮多核的優勢,支持的併發量更高。

the web client <-> the web server <-> the socket <-> uwsgi <-> Django

uwsgi服務器運行在django一側。

uWSGI(C語言書寫)+Django相比與單獨使用Django,使用多進程,發揮多核的優勢,支持的併發量更高。uWSGI中有master和worker進程。master進程根據配置創建相應數目的worker進程。一個worker進程被創建後,它會運行一個python解釋器實例,然後在worker進程被銷燬前一直使用。master將收到的http請求分配給worker處理。worker進程調用python腳本處理http請求。一個worker進程反覆用於處理很多個HTTP請求。woker進程數應該大於CPU內核數。然後根據CPU利用率增加進程數目。

3、我現在系統需要一個功能,當一個任務到達某個狀態時,如果24小時沒有任何人操作,則自動切換到另一個狀態,對每個用戶是有不同的任務的,有點想百度外賣下單等待商家接單的那種,有什麼可以方便django整合一起的框架嗎?django-celery如何?

簡單說一下我的考慮,供你參考。

用戶下單後,用戶訂單信息寫入數據庫。商家接單後,修改數據庫中用戶訂單狀態。

關於定時器:考慮使用django-celery創建一個線程做異步處理,24小時後檢查數據庫中用戶訂單狀態。如果仍然沒有商家接單,則修改訂單狀態。但是這樣可能線程太多,資源消耗太大。可以使用django-celery設置循環任務,比如每隔5分鐘查詢出數據庫中已經超過24小時、但是仍然沒有商家接單的訂單,修改這些訂單的狀態。

"

1、django+python27+mysql的生產環境,想換成python3,請問需要哪些注意事項?生產環境數據不想被破壞,所以不敢輕易下手,希望大神指點一下?

關於python升級:

可以使用Python3自帶工具2to3,將python2的代碼轉換為python3。少部分代碼仍需手工轉換。

升級python版本後,第三方包的版本需要升級。有的第三方包不支持python3。這個時候可以嘗試使用2to3工具對第三包的python源代碼進行轉換,然後使用。這樣存在一定風險。無法轉換的,需要尋找替代包,應用服務器上對應的代碼需要修改。

關於django升級:

django1.5開始支持python3。同時django1.11是支持python2的最後的版本。如果使用的django版本大於等於1.5,則django版本可以不升級。如果django版本低於1.5,則需要升級django版本。升級django版本後,新版本不兼容的老的API都需要修改。這個工作量比較大。

升級django版本後,為django服務的第三方包需要對應升級。建議django不要立即使用最新版本,以免第三方包還不支持最新的django版本。

關於mysql:

mysqldb不支持python3,需要使用mysqlclient做數據庫API驅動。

django2.0只支持myslq5.5或者更高版本

一般性的版本升級注意事項。

代碼和數據做好備份

python和django升級後,上線前需要充分測試。

Python Django帶你構建Web應用,13個常見問題彙總

2、剛學習django的nginx部署,一直不清楚處理高併發的原理,大神可以解釋下麼?

我簡單說一下我的理解。

django WSGI是單線程的,就是說一個請求處理完了才能響應另一個請求。

uWSGI(C語言書寫)+Django相比與單獨使用Django,通過多進程,發揮多核的優勢,支持的併發量更高。

the web client <-> the web server <-> the socket <-> uwsgi <-> Django

uwsgi服務器運行在django一側。

uWSGI(C語言書寫)+Django相比與單獨使用Django,使用多進程,發揮多核的優勢,支持的併發量更高。uWSGI中有master和worker進程。master進程根據配置創建相應數目的worker進程。一個worker進程被創建後,它會運行一個python解釋器實例,然後在worker進程被銷燬前一直使用。master將收到的http請求分配給worker處理。worker進程調用python腳本處理http請求。一個worker進程反覆用於處理很多個HTTP請求。woker進程數應該大於CPU內核數。然後根據CPU利用率增加進程數目。

3、我現在系統需要一個功能,當一個任務到達某個狀態時,如果24小時沒有任何人操作,則自動切換到另一個狀態,對每個用戶是有不同的任務的,有點想百度外賣下單等待商家接單的那種,有什麼可以方便django整合一起的框架嗎?django-celery如何?

簡單說一下我的考慮,供你參考。

用戶下單後,用戶訂單信息寫入數據庫。商家接單後,修改數據庫中用戶訂單狀態。

關於定時器:考慮使用django-celery創建一個線程做異步處理,24小時後檢查數據庫中用戶訂單狀態。如果仍然沒有商家接單,則修改訂單狀態。但是這樣可能線程太多,資源消耗太大。可以使用django-celery設置循環任務,比如每隔5分鐘查詢出數據庫中已經超過24小時、但是仍然沒有商家接單的訂單,修改這些訂單的狀態。

Python Django帶你構建Web應用,13個常見問題彙總

4、要怎麼樣運行Django裡的程序啊?出於比賽需要,要解釋一個 Django框架裡的軟件,本人學java,沒接觸過 Python的框架?求入口在哪兒?怎麼運行啊?

這個操作我的教程"Python Django帶你構建Web應用"裡有。

進入django項目根目錄。python manage.py runserver運行內置的Web服務器。缺省提供服務的IP地址是127.0.0.1,端口是8000。

如果希望對外提供服務,可以修改為真實的IP地址,例如想要使用1.1.1.1:8080對外提供服務。則在settings.py修改ALLOWED_HOSTS的內容為ALLOWED_HOSTS = ['1.1.1.1',]。 d:\\django\\web> python manage.py runserver 1.1.1.1:8000運行內置的Web服務器。

5、想跟你請教個問題:能用django做旅遊調查網站嗎,通過調查班級同學的旅遊意向,將信息存入數據庫,然後進行簡單的分析,得出最佳旅遊地點,這種想法可行嗎?

第一部分收集和存儲信息的需求和django相關。這是一個簡單的Web應用。使用表單獲取同學們的旅遊意向。因為數據量小,所以可以直接將數據存入SQLite數據庫中。

第二部分數據分析和結果展示,不一定需要依賴於django。根據需要從數據庫中提取信息進行分析。如果分析複雜,可以使用numpy、pandas進行分析,使用matploitlib展示分析結果。

"

1、django+python27+mysql的生產環境,想換成python3,請問需要哪些注意事項?生產環境數據不想被破壞,所以不敢輕易下手,希望大神指點一下?

關於python升級:

可以使用Python3自帶工具2to3,將python2的代碼轉換為python3。少部分代碼仍需手工轉換。

升級python版本後,第三方包的版本需要升級。有的第三方包不支持python3。這個時候可以嘗試使用2to3工具對第三包的python源代碼進行轉換,然後使用。這樣存在一定風險。無法轉換的,需要尋找替代包,應用服務器上對應的代碼需要修改。

關於django升級:

django1.5開始支持python3。同時django1.11是支持python2的最後的版本。如果使用的django版本大於等於1.5,則django版本可以不升級。如果django版本低於1.5,則需要升級django版本。升級django版本後,新版本不兼容的老的API都需要修改。這個工作量比較大。

升級django版本後,為django服務的第三方包需要對應升級。建議django不要立即使用最新版本,以免第三方包還不支持最新的django版本。

關於mysql:

mysqldb不支持python3,需要使用mysqlclient做數據庫API驅動。

django2.0只支持myslq5.5或者更高版本

一般性的版本升級注意事項。

代碼和數據做好備份

python和django升級後,上線前需要充分測試。

Python Django帶你構建Web應用,13個常見問題彙總

2、剛學習django的nginx部署,一直不清楚處理高併發的原理,大神可以解釋下麼?

我簡單說一下我的理解。

django WSGI是單線程的,就是說一個請求處理完了才能響應另一個請求。

uWSGI(C語言書寫)+Django相比與單獨使用Django,通過多進程,發揮多核的優勢,支持的併發量更高。

the web client <-> the web server <-> the socket <-> uwsgi <-> Django

uwsgi服務器運行在django一側。

uWSGI(C語言書寫)+Django相比與單獨使用Django,使用多進程,發揮多核的優勢,支持的併發量更高。uWSGI中有master和worker進程。master進程根據配置創建相應數目的worker進程。一個worker進程被創建後,它會運行一個python解釋器實例,然後在worker進程被銷燬前一直使用。master將收到的http請求分配給worker處理。worker進程調用python腳本處理http請求。一個worker進程反覆用於處理很多個HTTP請求。woker進程數應該大於CPU內核數。然後根據CPU利用率增加進程數目。

3、我現在系統需要一個功能,當一個任務到達某個狀態時,如果24小時沒有任何人操作,則自動切換到另一個狀態,對每個用戶是有不同的任務的,有點想百度外賣下單等待商家接單的那種,有什麼可以方便django整合一起的框架嗎?django-celery如何?

簡單說一下我的考慮,供你參考。

用戶下單後,用戶訂單信息寫入數據庫。商家接單後,修改數據庫中用戶訂單狀態。

關於定時器:考慮使用django-celery創建一個線程做異步處理,24小時後檢查數據庫中用戶訂單狀態。如果仍然沒有商家接單,則修改訂單狀態。但是這樣可能線程太多,資源消耗太大。可以使用django-celery設置循環任務,比如每隔5分鐘查詢出數據庫中已經超過24小時、但是仍然沒有商家接單的訂單,修改這些訂單的狀態。

Python Django帶你構建Web應用,13個常見問題彙總

4、要怎麼樣運行Django裡的程序啊?出於比賽需要,要解釋一個 Django框架裡的軟件,本人學java,沒接觸過 Python的框架?求入口在哪兒?怎麼運行啊?

這個操作我的教程"Python Django帶你構建Web應用"裡有。

進入django項目根目錄。python manage.py runserver運行內置的Web服務器。缺省提供服務的IP地址是127.0.0.1,端口是8000。

如果希望對外提供服務,可以修改為真實的IP地址,例如想要使用1.1.1.1:8080對外提供服務。則在settings.py修改ALLOWED_HOSTS的內容為ALLOWED_HOSTS = ['1.1.1.1',]。 d:\\django\\web> python manage.py runserver 1.1.1.1:8000運行內置的Web服務器。

5、想跟你請教個問題:能用django做旅遊調查網站嗎,通過調查班級同學的旅遊意向,將信息存入數據庫,然後進行簡單的分析,得出最佳旅遊地點,這種想法可行嗎?

第一部分收集和存儲信息的需求和django相關。這是一個簡單的Web應用。使用表單獲取同學們的旅遊意向。因為數據量小,所以可以直接將數據存入SQLite數據庫中。

第二部分數據分析和結果展示,不一定需要依賴於django。根據需要從數據庫中提取信息進行分析。如果分析複雜,可以使用numpy、pandas進行分析,使用matploitlib展示分析結果。

Python Django帶你構建Web應用,13個常見問題彙總

6、本來是準備開發一個web應用,主要是網站和客戶端(pda)訪問,現在網站使用django很方便就完成了,那在客戶端(pda)上面的想法是用webservice,也不知道可以直接使用django實現。能不能不用webservice,直接django搞定,希望能得到解決方案並普及一下知識?

可以使用Django REST framework來實現RESTful web service。

7、如何最高效的利用django進行快速開發?或者可以說django那些部分,可以幫助實現快速開發?

我覺得django開發快的原因在於:

首先是python,作為動態類型語言,使用靈活,開發速度快。

其次,和另外一個常用的python web框架flask對比。django提供的功能更全面。django是重量級框架。flask是輕量級框架,很多基本的功能都需要自己實現或者使用第三方組件,但是使用靈活。

django優點:內置功能完善、強大(比如表單、認證、權限控制、文件上傳、測試、國際化、分頁、序列化、會話、數據驗證、異常處理)使用方便,很多功能都不需要程序員自己實現了,強大的ORM機制,強大的admin站點,url pattern靈活易用,APP可插拔,錯誤提示信息非常詳細,官方文檔完善。

django缺點:封裝層次多,修改困難。想用喜歡的第三方組件來代替內置組件比較困難。django為了將表現和邏輯分離,所以DTL功能比較弱。

根據需求選擇框架,快速開發選擇django,深層次定製,選擇flask。

"

1、django+python27+mysql的生產環境,想換成python3,請問需要哪些注意事項?生產環境數據不想被破壞,所以不敢輕易下手,希望大神指點一下?

關於python升級:

可以使用Python3自帶工具2to3,將python2的代碼轉換為python3。少部分代碼仍需手工轉換。

升級python版本後,第三方包的版本需要升級。有的第三方包不支持python3。這個時候可以嘗試使用2to3工具對第三包的python源代碼進行轉換,然後使用。這樣存在一定風險。無法轉換的,需要尋找替代包,應用服務器上對應的代碼需要修改。

關於django升級:

django1.5開始支持python3。同時django1.11是支持python2的最後的版本。如果使用的django版本大於等於1.5,則django版本可以不升級。如果django版本低於1.5,則需要升級django版本。升級django版本後,新版本不兼容的老的API都需要修改。這個工作量比較大。

升級django版本後,為django服務的第三方包需要對應升級。建議django不要立即使用最新版本,以免第三方包還不支持最新的django版本。

關於mysql:

mysqldb不支持python3,需要使用mysqlclient做數據庫API驅動。

django2.0只支持myslq5.5或者更高版本

一般性的版本升級注意事項。

代碼和數據做好備份

python和django升級後,上線前需要充分測試。

Python Django帶你構建Web應用,13個常見問題彙總

2、剛學習django的nginx部署,一直不清楚處理高併發的原理,大神可以解釋下麼?

我簡單說一下我的理解。

django WSGI是單線程的,就是說一個請求處理完了才能響應另一個請求。

uWSGI(C語言書寫)+Django相比與單獨使用Django,通過多進程,發揮多核的優勢,支持的併發量更高。

the web client <-> the web server <-> the socket <-> uwsgi <-> Django

uwsgi服務器運行在django一側。

uWSGI(C語言書寫)+Django相比與單獨使用Django,使用多進程,發揮多核的優勢,支持的併發量更高。uWSGI中有master和worker進程。master進程根據配置創建相應數目的worker進程。一個worker進程被創建後,它會運行一個python解釋器實例,然後在worker進程被銷燬前一直使用。master將收到的http請求分配給worker處理。worker進程調用python腳本處理http請求。一個worker進程反覆用於處理很多個HTTP請求。woker進程數應該大於CPU內核數。然後根據CPU利用率增加進程數目。

3、我現在系統需要一個功能,當一個任務到達某個狀態時,如果24小時沒有任何人操作,則自動切換到另一個狀態,對每個用戶是有不同的任務的,有點想百度外賣下單等待商家接單的那種,有什麼可以方便django整合一起的框架嗎?django-celery如何?

簡單說一下我的考慮,供你參考。

用戶下單後,用戶訂單信息寫入數據庫。商家接單後,修改數據庫中用戶訂單狀態。

關於定時器:考慮使用django-celery創建一個線程做異步處理,24小時後檢查數據庫中用戶訂單狀態。如果仍然沒有商家接單,則修改訂單狀態。但是這樣可能線程太多,資源消耗太大。可以使用django-celery設置循環任務,比如每隔5分鐘查詢出數據庫中已經超過24小時、但是仍然沒有商家接單的訂單,修改這些訂單的狀態。

Python Django帶你構建Web應用,13個常見問題彙總

4、要怎麼樣運行Django裡的程序啊?出於比賽需要,要解釋一個 Django框架裡的軟件,本人學java,沒接觸過 Python的框架?求入口在哪兒?怎麼運行啊?

這個操作我的教程"Python Django帶你構建Web應用"裡有。

進入django項目根目錄。python manage.py runserver運行內置的Web服務器。缺省提供服務的IP地址是127.0.0.1,端口是8000。

如果希望對外提供服務,可以修改為真實的IP地址,例如想要使用1.1.1.1:8080對外提供服務。則在settings.py修改ALLOWED_HOSTS的內容為ALLOWED_HOSTS = ['1.1.1.1',]。 d:\\django\\web> python manage.py runserver 1.1.1.1:8000運行內置的Web服務器。

5、想跟你請教個問題:能用django做旅遊調查網站嗎,通過調查班級同學的旅遊意向,將信息存入數據庫,然後進行簡單的分析,得出最佳旅遊地點,這種想法可行嗎?

第一部分收集和存儲信息的需求和django相關。這是一個簡單的Web應用。使用表單獲取同學們的旅遊意向。因為數據量小,所以可以直接將數據存入SQLite數據庫中。

第二部分數據分析和結果展示,不一定需要依賴於django。根據需要從數據庫中提取信息進行分析。如果分析複雜,可以使用numpy、pandas進行分析,使用matploitlib展示分析結果。

Python Django帶你構建Web應用,13個常見問題彙總

6、本來是準備開發一個web應用,主要是網站和客戶端(pda)訪問,現在網站使用django很方便就完成了,那在客戶端(pda)上面的想法是用webservice,也不知道可以直接使用django實現。能不能不用webservice,直接django搞定,希望能得到解決方案並普及一下知識?

可以使用Django REST framework來實現RESTful web service。

7、如何最高效的利用django進行快速開發?或者可以說django那些部分,可以幫助實現快速開發?

我覺得django開發快的原因在於:

首先是python,作為動態類型語言,使用靈活,開發速度快。

其次,和另外一個常用的python web框架flask對比。django提供的功能更全面。django是重量級框架。flask是輕量級框架,很多基本的功能都需要自己實現或者使用第三方組件,但是使用靈活。

django優點:內置功能完善、強大(比如表單、認證、權限控制、文件上傳、測試、國際化、分頁、序列化、會話、數據驗證、異常處理)使用方便,很多功能都不需要程序員自己實現了,強大的ORM機制,強大的admin站點,url pattern靈活易用,APP可插拔,錯誤提示信息非常詳細,官方文檔完善。

django缺點:封裝層次多,修改困難。想用喜歡的第三方組件來代替內置組件比較困難。django為了將表現和邏輯分離,所以DTL功能比較弱。

根據需求選擇框架,快速開發選擇django,深層次定製,選擇flask。

Python Django帶你構建Web應用,13個常見問題彙總

8、我用終端創建django項目時 提示 django-admin: command not found ,但是運行Python 導入django又可以,這是哪裡出錯了 而且之前有創建成功過,能幫忙解答一下嗎?

比如python安裝目錄是D:\\Python36\\,則安裝django後,django-admin.exe在D:\\Python36\\Scripts\\中。需要將D:\\Python36\\Scripts\\;添加到系統變量Path中。

9、想問一下,一個分組查詢,現在有一個"性別"字段,我想統計其中男女生各有多少人,想用分組查詢的辦法。但是找不到示例代碼,求老師賜教?

類似查詢每個用戶寫了多少篇blog

from django.db.models import Count

numbers = Blog.objects.values('username').annotate(blog_count=Count('username')).order_by()

等效於SQL語句:select username, count(*) from Blog group by username

得到的QuerySets numbers的值是:

<QuerySet [{'username': 'admin', 'blog_count': 2}, {'username': 'Tom', 'blog_count': 4}, {'username': 'Jack', 'blog_count': 2}]>

最後添加order_by()是因為model裡面定義了class meta: ordering。

10、Django中的通用視圖是個難點嗎?今天搞了一天這個通用視圖,我是一點沒懂。網上也查不到詳細的資料,求老師簡單介紹一下~

django視圖最常做的事情是根據url中傳入的參數,從數據中獲取數據。加載模板,然後返回渲染後的模板。django提供通用視圖來實現這一常見流程。從而減少視圖的代碼量。

URLconf中參數的名字可能需要修改,比如DetailView通用視圖要求使用參數"pk"來表示主鍵。

在繼承了通用視圖類的視圖類中,只需要指定model和template_name,就可以完成基本的流程。

另外還要注意context變量要和template中對應。

django2.0的手冊 2.6.2 Use generic views: Less code is better給出了一個基本的例子,你可以試一下這個例子。

"

1、django+python27+mysql的生產環境,想換成python3,請問需要哪些注意事項?生產環境數據不想被破壞,所以不敢輕易下手,希望大神指點一下?

關於python升級:

可以使用Python3自帶工具2to3,將python2的代碼轉換為python3。少部分代碼仍需手工轉換。

升級python版本後,第三方包的版本需要升級。有的第三方包不支持python3。這個時候可以嘗試使用2to3工具對第三包的python源代碼進行轉換,然後使用。這樣存在一定風險。無法轉換的,需要尋找替代包,應用服務器上對應的代碼需要修改。

關於django升級:

django1.5開始支持python3。同時django1.11是支持python2的最後的版本。如果使用的django版本大於等於1.5,則django版本可以不升級。如果django版本低於1.5,則需要升級django版本。升級django版本後,新版本不兼容的老的API都需要修改。這個工作量比較大。

升級django版本後,為django服務的第三方包需要對應升級。建議django不要立即使用最新版本,以免第三方包還不支持最新的django版本。

關於mysql:

mysqldb不支持python3,需要使用mysqlclient做數據庫API驅動。

django2.0只支持myslq5.5或者更高版本

一般性的版本升級注意事項。

代碼和數據做好備份

python和django升級後,上線前需要充分測試。

Python Django帶你構建Web應用,13個常見問題彙總

2、剛學習django的nginx部署,一直不清楚處理高併發的原理,大神可以解釋下麼?

我簡單說一下我的理解。

django WSGI是單線程的,就是說一個請求處理完了才能響應另一個請求。

uWSGI(C語言書寫)+Django相比與單獨使用Django,通過多進程,發揮多核的優勢,支持的併發量更高。

the web client <-> the web server <-> the socket <-> uwsgi <-> Django

uwsgi服務器運行在django一側。

uWSGI(C語言書寫)+Django相比與單獨使用Django,使用多進程,發揮多核的優勢,支持的併發量更高。uWSGI中有master和worker進程。master進程根據配置創建相應數目的worker進程。一個worker進程被創建後,它會運行一個python解釋器實例,然後在worker進程被銷燬前一直使用。master將收到的http請求分配給worker處理。worker進程調用python腳本處理http請求。一個worker進程反覆用於處理很多個HTTP請求。woker進程數應該大於CPU內核數。然後根據CPU利用率增加進程數目。

3、我現在系統需要一個功能,當一個任務到達某個狀態時,如果24小時沒有任何人操作,則自動切換到另一個狀態,對每個用戶是有不同的任務的,有點想百度外賣下單等待商家接單的那種,有什麼可以方便django整合一起的框架嗎?django-celery如何?

簡單說一下我的考慮,供你參考。

用戶下單後,用戶訂單信息寫入數據庫。商家接單後,修改數據庫中用戶訂單狀態。

關於定時器:考慮使用django-celery創建一個線程做異步處理,24小時後檢查數據庫中用戶訂單狀態。如果仍然沒有商家接單,則修改訂單狀態。但是這樣可能線程太多,資源消耗太大。可以使用django-celery設置循環任務,比如每隔5分鐘查詢出數據庫中已經超過24小時、但是仍然沒有商家接單的訂單,修改這些訂單的狀態。

Python Django帶你構建Web應用,13個常見問題彙總

4、要怎麼樣運行Django裡的程序啊?出於比賽需要,要解釋一個 Django框架裡的軟件,本人學java,沒接觸過 Python的框架?求入口在哪兒?怎麼運行啊?

這個操作我的教程"Python Django帶你構建Web應用"裡有。

進入django項目根目錄。python manage.py runserver運行內置的Web服務器。缺省提供服務的IP地址是127.0.0.1,端口是8000。

如果希望對外提供服務,可以修改為真實的IP地址,例如想要使用1.1.1.1:8080對外提供服務。則在settings.py修改ALLOWED_HOSTS的內容為ALLOWED_HOSTS = ['1.1.1.1',]。 d:\\django\\web> python manage.py runserver 1.1.1.1:8000運行內置的Web服務器。

5、想跟你請教個問題:能用django做旅遊調查網站嗎,通過調查班級同學的旅遊意向,將信息存入數據庫,然後進行簡單的分析,得出最佳旅遊地點,這種想法可行嗎?

第一部分收集和存儲信息的需求和django相關。這是一個簡單的Web應用。使用表單獲取同學們的旅遊意向。因為數據量小,所以可以直接將數據存入SQLite數據庫中。

第二部分數據分析和結果展示,不一定需要依賴於django。根據需要從數據庫中提取信息進行分析。如果分析複雜,可以使用numpy、pandas進行分析,使用matploitlib展示分析結果。

Python Django帶你構建Web應用,13個常見問題彙總

6、本來是準備開發一個web應用,主要是網站和客戶端(pda)訪問,現在網站使用django很方便就完成了,那在客戶端(pda)上面的想法是用webservice,也不知道可以直接使用django實現。能不能不用webservice,直接django搞定,希望能得到解決方案並普及一下知識?

可以使用Django REST framework來實現RESTful web service。

7、如何最高效的利用django進行快速開發?或者可以說django那些部分,可以幫助實現快速開發?

我覺得django開發快的原因在於:

首先是python,作為動態類型語言,使用靈活,開發速度快。

其次,和另外一個常用的python web框架flask對比。django提供的功能更全面。django是重量級框架。flask是輕量級框架,很多基本的功能都需要自己實現或者使用第三方組件,但是使用靈活。

django優點:內置功能完善、強大(比如表單、認證、權限控制、文件上傳、測試、國際化、分頁、序列化、會話、數據驗證、異常處理)使用方便,很多功能都不需要程序員自己實現了,強大的ORM機制,強大的admin站點,url pattern靈活易用,APP可插拔,錯誤提示信息非常詳細,官方文檔完善。

django缺點:封裝層次多,修改困難。想用喜歡的第三方組件來代替內置組件比較困難。django為了將表現和邏輯分離,所以DTL功能比較弱。

根據需求選擇框架,快速開發選擇django,深層次定製,選擇flask。

Python Django帶你構建Web應用,13個常見問題彙總

8、我用終端創建django項目時 提示 django-admin: command not found ,但是運行Python 導入django又可以,這是哪裡出錯了 而且之前有創建成功過,能幫忙解答一下嗎?

比如python安裝目錄是D:\\Python36\\,則安裝django後,django-admin.exe在D:\\Python36\\Scripts\\中。需要將D:\\Python36\\Scripts\\;添加到系統變量Path中。

9、想問一下,一個分組查詢,現在有一個"性別"字段,我想統計其中男女生各有多少人,想用分組查詢的辦法。但是找不到示例代碼,求老師賜教?

類似查詢每個用戶寫了多少篇blog

from django.db.models import Count

numbers = Blog.objects.values('username').annotate(blog_count=Count('username')).order_by()

等效於SQL語句:select username, count(*) from Blog group by username

得到的QuerySets numbers的值是:

<QuerySet [{'username': 'admin', 'blog_count': 2}, {'username': 'Tom', 'blog_count': 4}, {'username': 'Jack', 'blog_count': 2}]>

最後添加order_by()是因為model裡面定義了class meta: ordering。

10、Django中的通用視圖是個難點嗎?今天搞了一天這個通用視圖,我是一點沒懂。網上也查不到詳細的資料,求老師簡單介紹一下~

django視圖最常做的事情是根據url中傳入的參數,從數據中獲取數據。加載模板,然後返回渲染後的模板。django提供通用視圖來實現這一常見流程。從而減少視圖的代碼量。

URLconf中參數的名字可能需要修改,比如DetailView通用視圖要求使用參數"pk"來表示主鍵。

在繼承了通用視圖類的視圖類中,只需要指定model和template_name,就可以完成基本的流程。

另外還要注意context變量要和template中對應。

django2.0的手冊 2.6.2 Use generic views: Less code is better給出了一個基本的例子,你可以試一下這個例子。

Python Django帶你構建Web應用,13個常見問題彙總

11、我原來做一個項目:因為表沒有關聯,所以用的是非關係型數據庫mongodb,項目開發環境用的是python+django,部署在ubuntu上。當時用了pymongo做python和mongodb的連接,用mongoengine做了django與mongodb的連接。

現在來了新的需求,表之間有關聯,因此我準備添加一個mysql數據庫。

請問老師,django展示網頁的時候,能夠同時展示mongodb中表的內容和mysql中表的內容嗎?settings.py中應該如何配置數據庫呢?

可以在同一個網頁中同時顯示Mongodb和mysql中的數據。Django中只需要把需要顯示的內容通過context傳遞給template即可。不管context的內容來自哪種數據庫。

在setting.py DATABASES中添加連接mysql所需的參數,例如:

'db2': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'blog',

'USER': 'root',

'PASSWORD': '123456',

'HOST': '10.0.0.1',

'PORT': '3306',

}

可以設置數據庫和app的映射關係

DATABASE_APPS_MAPPING = {

'app1': 'db1',

'app2': 'db2',

}

也可以在查詢或者修改數據庫內容時,使用函數using()或者參數using來指定需要使用哪個數據庫。

12、作為一名小白,我想問大神:都說python django學起來相對來說比較簡單,從入門到學會大致需要多久的時間啊?也就是學習週期大概有多長?需要哪些基礎呢?

如果瞭解MVC框架和http協議,又懂python,那學django比較快。否則的話時間就久一些。

13、我用django自動創建了後臺需要的表,其中一張表A用來存需要展示的新聞內容,之前新聞內容是存在另外一張表B中(mysql的數據庫編碼之前是latin,後來改成utf8,A表B表全部都是utf8編碼),我把B表內容導入A表,英文部分是正常,但是中文部分全部變成了問號,求解?

可能問題出在connection連接層上。需要將連接層的編碼方式也修改為UTF-8

請關注+私信回覆:“學習”就可以免費拿到軟件測試學習資料

"

1、django+python27+mysql的生產環境,想換成python3,請問需要哪些注意事項?生產環境數據不想被破壞,所以不敢輕易下手,希望大神指點一下?

關於python升級:

可以使用Python3自帶工具2to3,將python2的代碼轉換為python3。少部分代碼仍需手工轉換。

升級python版本後,第三方包的版本需要升級。有的第三方包不支持python3。這個時候可以嘗試使用2to3工具對第三包的python源代碼進行轉換,然後使用。這樣存在一定風險。無法轉換的,需要尋找替代包,應用服務器上對應的代碼需要修改。

關於django升級:

django1.5開始支持python3。同時django1.11是支持python2的最後的版本。如果使用的django版本大於等於1.5,則django版本可以不升級。如果django版本低於1.5,則需要升級django版本。升級django版本後,新版本不兼容的老的API都需要修改。這個工作量比較大。

升級django版本後,為django服務的第三方包需要對應升級。建議django不要立即使用最新版本,以免第三方包還不支持最新的django版本。

關於mysql:

mysqldb不支持python3,需要使用mysqlclient做數據庫API驅動。

django2.0只支持myslq5.5或者更高版本

一般性的版本升級注意事項。

代碼和數據做好備份

python和django升級後,上線前需要充分測試。

Python Django帶你構建Web應用,13個常見問題彙總

2、剛學習django的nginx部署,一直不清楚處理高併發的原理,大神可以解釋下麼?

我簡單說一下我的理解。

django WSGI是單線程的,就是說一個請求處理完了才能響應另一個請求。

uWSGI(C語言書寫)+Django相比與單獨使用Django,通過多進程,發揮多核的優勢,支持的併發量更高。

the web client <-> the web server <-> the socket <-> uwsgi <-> Django

uwsgi服務器運行在django一側。

uWSGI(C語言書寫)+Django相比與單獨使用Django,使用多進程,發揮多核的優勢,支持的併發量更高。uWSGI中有master和worker進程。master進程根據配置創建相應數目的worker進程。一個worker進程被創建後,它會運行一個python解釋器實例,然後在worker進程被銷燬前一直使用。master將收到的http請求分配給worker處理。worker進程調用python腳本處理http請求。一個worker進程反覆用於處理很多個HTTP請求。woker進程數應該大於CPU內核數。然後根據CPU利用率增加進程數目。

3、我現在系統需要一個功能,當一個任務到達某個狀態時,如果24小時沒有任何人操作,則自動切換到另一個狀態,對每個用戶是有不同的任務的,有點想百度外賣下單等待商家接單的那種,有什麼可以方便django整合一起的框架嗎?django-celery如何?

簡單說一下我的考慮,供你參考。

用戶下單後,用戶訂單信息寫入數據庫。商家接單後,修改數據庫中用戶訂單狀態。

關於定時器:考慮使用django-celery創建一個線程做異步處理,24小時後檢查數據庫中用戶訂單狀態。如果仍然沒有商家接單,則修改訂單狀態。但是這樣可能線程太多,資源消耗太大。可以使用django-celery設置循環任務,比如每隔5分鐘查詢出數據庫中已經超過24小時、但是仍然沒有商家接單的訂單,修改這些訂單的狀態。

Python Django帶你構建Web應用,13個常見問題彙總

4、要怎麼樣運行Django裡的程序啊?出於比賽需要,要解釋一個 Django框架裡的軟件,本人學java,沒接觸過 Python的框架?求入口在哪兒?怎麼運行啊?

這個操作我的教程"Python Django帶你構建Web應用"裡有。

進入django項目根目錄。python manage.py runserver運行內置的Web服務器。缺省提供服務的IP地址是127.0.0.1,端口是8000。

如果希望對外提供服務,可以修改為真實的IP地址,例如想要使用1.1.1.1:8080對外提供服務。則在settings.py修改ALLOWED_HOSTS的內容為ALLOWED_HOSTS = ['1.1.1.1',]。 d:\\django\\web> python manage.py runserver 1.1.1.1:8000運行內置的Web服務器。

5、想跟你請教個問題:能用django做旅遊調查網站嗎,通過調查班級同學的旅遊意向,將信息存入數據庫,然後進行簡單的分析,得出最佳旅遊地點,這種想法可行嗎?

第一部分收集和存儲信息的需求和django相關。這是一個簡單的Web應用。使用表單獲取同學們的旅遊意向。因為數據量小,所以可以直接將數據存入SQLite數據庫中。

第二部分數據分析和結果展示,不一定需要依賴於django。根據需要從數據庫中提取信息進行分析。如果分析複雜,可以使用numpy、pandas進行分析,使用matploitlib展示分析結果。

Python Django帶你構建Web應用,13個常見問題彙總

6、本來是準備開發一個web應用,主要是網站和客戶端(pda)訪問,現在網站使用django很方便就完成了,那在客戶端(pda)上面的想法是用webservice,也不知道可以直接使用django實現。能不能不用webservice,直接django搞定,希望能得到解決方案並普及一下知識?

可以使用Django REST framework來實現RESTful web service。

7、如何最高效的利用django進行快速開發?或者可以說django那些部分,可以幫助實現快速開發?

我覺得django開發快的原因在於:

首先是python,作為動態類型語言,使用靈活,開發速度快。

其次,和另外一個常用的python web框架flask對比。django提供的功能更全面。django是重量級框架。flask是輕量級框架,很多基本的功能都需要自己實現或者使用第三方組件,但是使用靈活。

django優點:內置功能完善、強大(比如表單、認證、權限控制、文件上傳、測試、國際化、分頁、序列化、會話、數據驗證、異常處理)使用方便,很多功能都不需要程序員自己實現了,強大的ORM機制,強大的admin站點,url pattern靈活易用,APP可插拔,錯誤提示信息非常詳細,官方文檔完善。

django缺點:封裝層次多,修改困難。想用喜歡的第三方組件來代替內置組件比較困難。django為了將表現和邏輯分離,所以DTL功能比較弱。

根據需求選擇框架,快速開發選擇django,深層次定製,選擇flask。

Python Django帶你構建Web應用,13個常見問題彙總

8、我用終端創建django項目時 提示 django-admin: command not found ,但是運行Python 導入django又可以,這是哪裡出錯了 而且之前有創建成功過,能幫忙解答一下嗎?

比如python安裝目錄是D:\\Python36\\,則安裝django後,django-admin.exe在D:\\Python36\\Scripts\\中。需要將D:\\Python36\\Scripts\\;添加到系統變量Path中。

9、想問一下,一個分組查詢,現在有一個"性別"字段,我想統計其中男女生各有多少人,想用分組查詢的辦法。但是找不到示例代碼,求老師賜教?

類似查詢每個用戶寫了多少篇blog

from django.db.models import Count

numbers = Blog.objects.values('username').annotate(blog_count=Count('username')).order_by()

等效於SQL語句:select username, count(*) from Blog group by username

得到的QuerySets numbers的值是:

<QuerySet [{'username': 'admin', 'blog_count': 2}, {'username': 'Tom', 'blog_count': 4}, {'username': 'Jack', 'blog_count': 2}]>

最後添加order_by()是因為model裡面定義了class meta: ordering。

10、Django中的通用視圖是個難點嗎?今天搞了一天這個通用視圖,我是一點沒懂。網上也查不到詳細的資料,求老師簡單介紹一下~

django視圖最常做的事情是根據url中傳入的參數,從數據中獲取數據。加載模板,然後返回渲染後的模板。django提供通用視圖來實現這一常見流程。從而減少視圖的代碼量。

URLconf中參數的名字可能需要修改,比如DetailView通用視圖要求使用參數"pk"來表示主鍵。

在繼承了通用視圖類的視圖類中,只需要指定model和template_name,就可以完成基本的流程。

另外還要注意context變量要和template中對應。

django2.0的手冊 2.6.2 Use generic views: Less code is better給出了一個基本的例子,你可以試一下這個例子。

Python Django帶你構建Web應用,13個常見問題彙總

11、我原來做一個項目:因為表沒有關聯,所以用的是非關係型數據庫mongodb,項目開發環境用的是python+django,部署在ubuntu上。當時用了pymongo做python和mongodb的連接,用mongoengine做了django與mongodb的連接。

現在來了新的需求,表之間有關聯,因此我準備添加一個mysql數據庫。

請問老師,django展示網頁的時候,能夠同時展示mongodb中表的內容和mysql中表的內容嗎?settings.py中應該如何配置數據庫呢?

可以在同一個網頁中同時顯示Mongodb和mysql中的數據。Django中只需要把需要顯示的內容通過context傳遞給template即可。不管context的內容來自哪種數據庫。

在setting.py DATABASES中添加連接mysql所需的參數,例如:

'db2': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'blog',

'USER': 'root',

'PASSWORD': '123456',

'HOST': '10.0.0.1',

'PORT': '3306',

}

可以設置數據庫和app的映射關係

DATABASE_APPS_MAPPING = {

'app1': 'db1',

'app2': 'db2',

}

也可以在查詢或者修改數據庫內容時,使用函數using()或者參數using來指定需要使用哪個數據庫。

12、作為一名小白,我想問大神:都說python django學起來相對來說比較簡單,從入門到學會大致需要多久的時間啊?也就是學習週期大概有多長?需要哪些基礎呢?

如果瞭解MVC框架和http協議,又懂python,那學django比較快。否則的話時間就久一些。

13、我用django自動創建了後臺需要的表,其中一張表A用來存需要展示的新聞內容,之前新聞內容是存在另外一張表B中(mysql的數據庫編碼之前是latin,後來改成utf8,A表B表全部都是utf8編碼),我把B表內容導入A表,英文部分是正常,但是中文部分全部變成了問號,求解?

可能問題出在connection連接層上。需要將連接層的編碼方式也修改為UTF-8

請關注+私信回覆:“學習”就可以免費拿到軟件測試學習資料

Python Django帶你構建Web應用,13個常見問題彙總

"

相關推薦

推薦中...