1、七牛雲BUG
問題:七牛雲上傳本地文件能夠成功,但是加載七牛空間中的圖片就不會顯示,圖片顯示的Request URL: http://qbautq371.bkt.clouddn.com中的前部分個人免費上傳空間域名錯誤。
解答:問題是多種可能:1、七牛空間上傳域名地址沒有修改,下面代碼中需要將域名改成自己的上傳空間域名。
// 七牛雲上傳需要修改的部分內容
$(function () {
lgqiniu.setUp({
'domain': 'http://qbautq371.bkt.clouddn.com/', // 修改成自己賬戶的免費七牛雲外鏈域名
'browse_btn': 'upload-btn',
'uptoken_url': '/c/uptoken/', // 七牛雲上傳文件路由名稱/uptoken/,與公共視圖文件:apps/common/views.py中命名相同
'success': function (up,file,info) {
var imageInput = $("input[name='image_url']");
imageInput.val(file.name);
}
});
});
且需要修改在七牛雲上傳中的設置Access Key 和 Secret Key根據七牛雲個人中心的信息修改,還需要修改自己創建上傳的空間bucket_name = ‘xxx’,這個上傳空間的地區選擇華東。
# 創建七牛雲上傳文件路由,前後臺公有
@common_bp.route("/uptoken/") # 路由與static/cms/js/banners.js中上傳文件路由相同
def uptoken():
# 需要填寫你的 Access Key 和 Secret Key
access_key = 'F6TFlLqmX4Jxi_OJ86xLVCB8mQ5KRsyzCjGVWPEh'
secret_key = 'zhCb8cNSR-lifyVCZLPjH3GhD4_W7P5Sgbh9mHah'
# 構建鑑權對象
q = Auth(access_key, secret_key)
# 要上傳的空間
bucket_name = 'chen0406'
# 生成上傳 Token,可以指定過期時間等
token = q.upload_token(bucket_name) # 生成token,用於項目上傳使用
return jsonify({"uptoken": token}) # 鍵值對類型
2、可能出現的問題是自己的js文件沒有加載成自己更新後的代碼文件,還是最開始的代碼文件,這就會造成Access Key 和 Secret Key,上傳域名地址沒有修改,此時需要F12查看瀏覽器加載的文件中關於上面幾個參數的地址和數值有沒有按照自己代碼中更改的進行加載,沒有的話就將加載出錯的代碼文件刪除重新加載。
2、request請求
request請求總體分爲兩類:
- 1.get請求
訪問時會在地址欄直接顯示參數不安全,且參數大小比較小。 - 2.post請求
參數不顯示在地址欄,一般用戶註冊、登錄都通過post請求完成。
flask獲取參數方式:
- request.form.get(“key”, type=str, default=None) 獲取表單數據
- request.args.get(“key”) 獲取get請求參數
- request.values.get(“key”) 獲取所有參數
下面直接開始試驗,以用戶註冊爲例:
需要獲取四個參數:用戶手機號、密碼、校驗密碼、手機驗證碼
mobile = request.form.get(“mobile”)
password = request.form.get(“password”,type=str,default=None)
password_repeat = request.form.get(“password_repeat”,type=str,default=None)
mobile_code = request.form.get(“mobile_code”,type=str,default=None)
3、flask框架報錯:ValueError: View function did not return a response;和 TypeError TypeError: The view function did not return a valid response. The function either returned…
解決辦法:視圖函數沒有返回響應,查看視圖函數,沒有添加關鍵字return,導致視圖無返回值。需要在views.py中視圖函數返回渲染到html頁面。
4、服務器關機操作
5、Linux系統中小工具
給大家推薦一個用於上傳和下載的工具
--yum install lrzsz
或者
--apt-get install lrzsz
# 按照提示輸入y即可安裝完成
--rz //按回車即可上傳本地文件
6、Ubuntu系統apt-get出錯
報錯
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package mysql-community-server
解決方法:
sudo install apt-get
7、FileZilla連接異常
# 更新源列表
sudo apt-get update
# 安裝vsftpd
sudo apt-get install vsftpd (安裝)
sudo service vsftpd start (啓動)
# 新建"/home/uftp"目錄作爲用戶主目錄 (用戶 uftp)
sudo mkdir /home/uftp
sudo ls /home (查看目錄有沒有生成)
# 創建用戶並設置密碼
注意:這裏創建的用戶密碼需要和自己服務器的賬號密碼相同,否則相當於創建了一個新的服務器用戶,只能在該用戶的文件夾下上傳文件纔會被允許
sudo useradd -d /home/uftp -s /bin/bash 用戶名 (回車-->用戶新建成功)
sudo passwd 用戶名 (設置用戶的密碼-->回車-->輸入兩次密碼-->回車-->密碼設置成功)
sudo chown 用戶名 /home/用戶名/ (修改文件夾的擁有者爲用戶)
# 使用vim修改配置文件/etc/vsftpd.conf
sudo vim /etc/vsftpd.conf (回車-->打開了vsftpd.conf文件)
添加如下配置 :
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
local_enable=YES
pasv_promiscuous=YES
write_enable=YES (是否可寫入)
然後保存
# 使用vim新建/etc/allowed_users文件
sudo vim /etc/allowed_users (回車-->輸入用戶名-->保存, 文件創建成功)
# 查看 /etc/ftpusers文件中的內容
看一看有沒有用戶名,如果沒有,就直接退出。如果有就刪除該用戶名,因爲這個文件中記錄的是不能訪問FTP服務器的用戶清單<br>,記着
sudo service vsftpd restart 重啓服務
# 直接瀏覽器訪問 ftp://主機ip地址,登錄FTP服務器(ip可用ifconfig命令查看)。按照提示輸入 前面設置的用戶名密碼
8、設置MySQL的字符集爲UTF-8,令其支持中文
# Ubuntu系統服務器
sudo stop mysql
sudo pip install vim
sudo vim /etc/mysql/my.cnf.d/my.cnf
# 【mysqld】在 /etc/mysql/mysql.conf.d/mysqld.cnf
在 【mysqld】下追加:
character-set-server=utf8
# 【mysql】 在 /etc/mysql/conf.d/mysql.cnf
在 【mysql】 下追加:
default-character-set=utf8
重啓MySQL,查看MySQL運行狀態
# 重啓MySQL
service mysql restart
# 查看字符集修改設置
mysql -u root -p
show variables like '%character%';
# 另一種查詢mysql的狀態
ps -aux|grep mysql
9、uwsgi --ini uwsgi.ini
報錯:uwsgi: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
解決:
# 安裝依賴庫
sudo apt-get install libpcre3 libpcre3-dev
# libpcre.so.3的路徑一般是/lib/x86_64-linux-gnu/libpcre.so.3,可以修改他的路徑進行關聯
sudo ln -s /lib/x86_64-linux-gnu/libpcre.so.3 /usr/lib/libpcre.so.1
然後運行自己創建的uwsgi.ini文件,項目就可以正常啓動了
uwsgi --ini uwsgi.ini
10、服務器開放端口
按照初始服務器設置指南進行操作,則應啓用UFW防火牆。要測試應用程序,您需要允許訪問端口5000:
sudo ufw allow 5000
11、service nginx start
報錯:Job for nginx.service failed because the control process exited with error code.
解決:sudo service nginx start
採用root權限執行nginx就可以