PS:本系列內容進度節奏會放的很慢,每次知識點都儘可能少一點,這樣你們接觸的知識點少了,會更容易理解,由於少便是多。另外,對於後面代碼部分,雖然儘可能不用那些複雜的封裝和類,但它並不表示看了就能所有記住,並懂得每一個函數的用法,在何時去調用,清楚它輸入的參數類型、能處理的參數類型和輸出的結果是什麼。它須要動手去調用,去大量的測試,這樣才能真正掌握。對於初學者,最好將這些函數和測試用例全都照着錄入一次,你會有不同的體會,我本身去學習一個新框架時,都會盡可能將底層的代碼親手錄入一次,而不是用複製粘貼。html
因爲要實現先後端徹底分離,因此須要在本地環境部署一個nginx服務器,配置後先後端訪問時就不會出現跨域的問題。固然也能夠將前端文件放到python項目中,而後使用路由的方式訪問,但這樣訪問時通常都會多出一層目錄出來,對於追求完美有強迫症的人來講仍是很彆扭的,因此仍是學多同樣技能,話說要配置這個服務仍是挺簡單的。前端
1.安裝nginx服務python
首先下載nginx的windows運行版和Windows Service Wrapper(將nginx安裝到系統服務的程序, 這樣就不用每次都要手動運行了)linux
點擊下載nginx
解壓後有兩個文件web
將nginx-1.11.5解壓到 E:\Service 目錄下windows
解壓Windows Service Wrapper,將裏面的winsw-1.9-bin.exe複製到 E:\Service\nginx-1.11.5 下,並更名爲nginx-service.exe後端
而後在 E:\Service\nginx-1.11.5 目錄下建立一個xml文件,命名爲nginx-service.xml,並粘貼下面內容(若是你的路徑不是在E:\Service下,要注意修改配置文件中的路徑)api
<?xml version="1.0" encoding="UTF-8" ?> <service> <id>nginx</id> <name>Nginx Service</name> <description>High Performance Nginx Service</description> <executable>E:\Service\nginx-1.11.5\nginx.exe</executable> <logpath>E:\Service\nginx-1.11.5\</logpath> <logmode>roll</logmode> <depend></depend> <startargument>-p E:\Service\nginx-1.11.5</startargument> <stopargument>-p E:\Service\nginx-1.11.5\nginx.exe -s stop</stopargument> </service>
運行cmd,輸入命令:E:\Service\nginx-1.11.5\nginx-service.exe install ,將nginx安裝成Windows服務跨域
點擊個人電腦 右鍵 -> 管理 -> 服務 -> 看看是否有 Nginx Service 這個服務,有的話就表示安裝成功了
若是路徑寫錯了,也能夠在中止服務後,輸入 E:\Service\nginx-1.11.5\nginx-service.exe uninstall 進行卸載
若是想中止服務,直接點中止好像停不了,能夠打開Windows任務管理器,找到nginx-service.exe點右鍵,在彈出的菜單中點擊結束進程樹就能夠了
2.修改nginx.conf配置信息
在 E:\Service\nginx-1.11.5\conf 文件夾找到nginx.conf文件,能夠用Uedit或Notepad打開進行編輯,不要用系統自帶的記事本,用記事本編輯後可能由於編碼問題,nginx服務會啓動不了
將nginx.conf修改成下面內容
worker_processes 1; #工做進程的個數,建議設置爲等於CPU總核心數 events { worker_connections 1024; #單個進程最大鏈接數(最大鏈接數=單個鏈接數*進程數) } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; sendfile on; keepalive_timeout 30; #gzip on; #服務器的集羣配置 upstream myweb { #fair; ip_hash; # 設置後端接口服務器地址 server 127.0.0.1:9090 weight=1 max_fails=5 fail_timeout=5s; } server { listen 81; # 監聽80端口,若是被佔用了,能夠改爲其餘端口 charset utf-8; root E:\\Python\\simple\\html; # 前端html路徑,這裏能夠修改成你放置前端html的路徑 server_name 127.0.0.1; # 當前服務的域名,能夠有多個,用空格隔開 location / { index Index.html index.html; } # 設置後端接口跳轉地址,訪問括號中的地址時會自動跳轉到後端接口服務上 location ~* ^/(index|api|user|upload)/ { # 這裏設置 #請求轉向自定義的的負載均衡服務器列表 proxy_pass http://myweb; proxy_cache_key $host$uri$is_args$args; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #後端的Web服務器能夠經過X-Forwarded-For獲取用戶真實IP proxy_connect_timeout 3; #nginx跟後端服務器鏈接超時時間(代理鏈接超時) proxy_send_timeout 5; #後端服務器數據回傳時間(代理髮送超時) proxy_read_timeout 5; #鏈接成功後,後端服務器響應時間(代理接收超時) } } }
而後到系統服務中,啓動 Nginx Service 這個服務就能夠了
打開瀏覽器輸入:http://127.0.0.1:81/ 就能夠看到前端頁面了(因爲前端比較菜,因此直接用H-ui前端自帶的圖片,沒有專門處理)
打開瀏覽器輸入:http://127.0.0.1:81/login.html就能夠看到後端登陸頁面了
打開瀏覽器輸入:http://127.0.0.1:81/index/ 就能夠看到上一篇中訪問 http://127.0.0.1:9090/index/ 的Hello World了(PS:要記得運行PyCharm,打開上一章的main.py文件,而後運行Debug,否則會沒法訪問)
若是 Nginx Service 啓動不了,能夠查看nginx的logs文件夾裏的error.log日誌,看看提示什麼出錯了,對應進行修改,不少時候啓動不了,都是conf\nginx.conf配置文件沒有設置好,好比說80端口被佔用了,須要修改端口等;或者裏面的路徑設置錯了,windows下的路徑都必須是E:\\xxx\\xxx 這種方式,用linux的路徑或少了\都會出錯,其餘出錯的話能夠查看error.log日誌後,將錯誤複製到百度進行找看解決方案
版權聲明:本文原創發表於 博客園,做者爲 AllEmpty 本文歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然視爲侵權。
python開發QQ羣:669058475(本羣已滿)、733466321(能夠加2羣) 做者博客:http://www.cnblogs.com/EmptyFS/