原创 Django+Vue前後端分離項目的部署

前後端分離項目的部署主要使用Nginx和uwsgi來實現,把Nginx換成Apache也是可以的,看個人喜好。Nginx主要處理靜態文件,uwsgi用來部署Django項目,處理其他請求 安裝uwsgi: pip3 install uw

原创 使用CDN優化首頁加載速度

之前使用vue構建的前端頁面每次加載都需要十幾秒的時間,最初的時候因爲瀏覽器有緩存一直沒有發現這個問題,後來換用設備訪問的時候才發現。不想花費太多的時間去優化vue的代碼,感覺作用不大,畢竟服務器帶寬只有1M,再怎麼壓縮文件大小都需要很長

原创 jieba+whoosh實現簡單的商品搜索功能

功能描述 實現一個類似淘寶的搜索功能,例如下面這個例子 簡單點來說我們需要先根據商品名稱創建索引,然後再用索引文件匹配去查詢字符串來實現商品的搜索,這種搜索是有別於正則匹配的,他會對字符串進行分詞處理,準確度也會更高。 準備工作

原创 Postgresql的全文檢索功能

之前做過一個jieba+whoosh的商品搜索功能,後來發現Postgresql數據庫自帶有全文檢索的功能,那麼就嘗試使用Postgresql的全文檢索功能來實現一次 postgresql配置 環境:Ubuntu16.04 版本:v

原创 從零開始搭建物聯網平臺(10):微信登錄和用戶綁定

微信小程序不支持Cookie的,所以爲了保存用戶登錄狀態就必須換一個方式實現,這裏採用jwt的方式,關於jwt簡單來說就是第一次登錄驗證成功後對想要保存的信息進行加密,然後將加密過後的內容返回給前端,前端每次請求的時候都攜帶上這個toke

原创 從零開始搭建物聯網平臺(9):快捷指令和指令發送

回來更新了,先說明一下,這個項目沒有爛尾,沒有爛尾,沒有爛尾,第一版其實已經做完幾個月了,後來想實現小程序端的部分功能,最後結果就是導致小程序和web兩個的接口不兼容,而且第一次設計的時候有很多地方沒有設計好,所以又推翻重做了,在這一版本

原创 對Python裝飾器的理解

想要弄明白裝飾器是什麼東西,首先我們需要了解一下什麼是閉包,因爲裝飾器是閉包的一種應用。 閉包 閉包的定義: ​ 通俗的來說閉包就是在一個函數內部定義另外一個函數,這個函數又引用了外部函數的變量,並且外函數的返回值是內函數的引用,下面

原创 HTTP協議基礎

HTTP協議基礎 總結於圖解HTTP協議 文章目錄HTTP協議基礎什麼是URI和URL?URI格式HTTP協議用於客戶端和服務器端之間的通信HTTP狀態碼WEB服務器HTTP首部 什麼是URI和URL? URI(統一資源標識符)表示的

原创 MySQL必知必會總結(二)

計算字段 一般數據庫中存儲的數據可能不會是我們所需要的格式,例如存儲一個地址,在數據庫中可能會將城市、區和街道分別存入不同的列中,但是我們可能需要直接獲取一個完整的地址,這時候就需要做一些轉換操作了,可以直接取出每個字段的值,然後在我

原创 MySQL必知必會總結(一)

去重 MySQL中不能部分使用DISTINCT,DISTINCT關鍵字會應用於所有列而不僅是前置它的列。如果給出SELECT DISTINCT score,age,除非指定的兩個列都不同,否則所有行都將被檢索出來。 例如如下的表

原创 微信小程序開發總結

微信小程序開發 1.數據綁定 {{ name}} ,和vue不同的是如果直接更改data並不會重新渲染,而是要使用setData({name:data})的方法 2.調用組件的方法: 獲取元素: const ele = this

原创 從零開始搭建物聯網平臺(8):郵箱通知服務

關於觸發器的通知,最開始有三種打算 微信公衆號、 郵箱、 HTTP,最後發現微信公衆號平臺無法主動向用戶推送消息,所以微信公衆號暫時不做了,看看有沒有其他的解決方案 搭建SMTP服務 發送郵件可以藉助第三方平臺如163、QQ等等,但是使用

原创 使用CDN加速首頁加載速度

之前使用vue構建的前端頁面每次加載都需要十幾秒的時間,最初的時候因爲瀏覽器有緩存一直沒有發現這個問題,後來換用設備訪問的時候才發現。不想花費太多的時間去優化vue的代碼,感覺作用不大,畢竟服務器帶寬只有1M,再怎麼壓縮文件大小都需要很長

原创 Django中間件執行流程和CSRF驗證

中間件執行流程 django的中間件是一個輕量級的插件,可以改變django的輸入和輸出,中間件共有5種方法,分別爲: process_request(self,request) process_view(self, request, c

原创 Docker

安裝 apt-get install docker.io 獲取鏡像:docker pull <name> 運行一個容器: docker run <參數> <image name>  參數 -d, --detach=false, 指定容器運