[Bash]
- 啟動:
$sudo systemctl restart nginx[issue]
$uwsgi uwsgi.ini
or
$sudo service nginx restart[issue]
$uwsgi --reload uwsgi.pid
############ nginx log
gedit /var/log/nginx/error.log
sudo rm -f /var/log/nginx/*.log # clear
############ nginx conf
sudo gedit /etc/nginx/sites-available/default # setting
sudo gedit /etc/nginx/nginx.conf #
[admin手冊]
- 修改密碼
項目根目錄下嗅定,$python manage.py shell
from django.contrib.auth.models import User
user = User.objects.get(username='admin')
user.set_password('new_password')
user.save()
[部署手冊]
django + nginx + uwsgi
注:nginx監(jiān)聽端口需是打開的
[Documents]
本地啟動:$python manage.py runserver 8080
- 請求與響應(yīng)
app:
每一個應(yīng)用(app)都是一個 Python 包奥此。通常都將它們放在與manage.py腳本同級的目錄下
$python manage.py startapp myapp
- 視圖:
1)myapp/views.py
2)myapp/urls.py #為了調(diào)用該視圖
3)myproj/urls.py #主urls.py文件
include語法相當于多級路由
- 模型與后端
數(shù)據(jù)庫配置 >> 定義model探越,... >> 啟用模型(建表+建python數(shù)據(jù)庫API)
(每一個類都是django.db.models.Model的子類。每一個字段都是Field類的一個實例)
- 修改模型三步:
models.py
中修改模型
$python manage.py makemigrations webapp
創(chuàng)建遷移記錄文件
$python manage.py migrate
操作同步到數(shù)據(jù)庫
admin.py
中注冊盈魁,同步到管理后臺
[Method]
- method: 正則查找 [參考]
Problem: 通過后臺頁面上傳到服務(wù)器的圖片大小是任意的,現(xiàn)需將圖片以固定大小顯示在主頁窃诉。已知讀入字符串img如下:
img = "<p><img alt="" src="....jpg" style="height:4632px; width:7952px" /></p>"
Algorithm: { 字符串匹配杨耙,取得src值;根據(jù)src值飘痛,新建標簽了珊膜;}
p = re.compile(r'src=".*?(.*?)"')
src = p.findall(img).pop()
[Issue]
issue: 啟動Nginx出現(xiàn)
Failed to start nginx.service:unit not found
之前為修復(fù)服務(wù)器頭文件披露的風(fēng)險,將Ngnix卸載后并編譯安裝宣脉,因此Nginx啟動方式變了车柠。應(yīng)該采用./nginx
的方式運行服務(wù)。issue: 標簽未渲染 >> [添加"
|safe
"]
將{{ ele.body }}
修改為{{ ele.body|safe }}
的格式
- issue: css資源404(部署管理員后臺)[僅參考]
[ 將本地css資源復(fù)制至項目內(nèi) ]
在python shell中:
>>>import django
>>>django.__file__
'.../python3.8/site-packages/django/__init__.py'
[ 通常'.../python3.8/site-packages/django/contrib/admin/static/' ]
[ 通常'.../python3.8/site-packages/ckeditor/static/' ]
issue: Server端只有500,看不到錯誤信息 >> [打開Debug模式]
修改配置文件竹祷,webproject/webproject/settings.pyissue: nginx重啟失敗
>> [80端口占用谈跛,kill相關(guān)進程],$sudo netstat -tnlp | grep 80
>> [nginx語法錯誤]溶褪,$sudo nginx -t
>> [換命令]币旧,$sudo service nginx restart
- issue: 413
nginx報錯,查看nginx-log如下:
[error] client intended to send too large body: 3667175 bytes,
解決:
1.打開nginx配置文件 nginx.conf, 路徑一般是:/etc/nginx/nginx.conf猿妈。
2.在http{}段中加入client_max_body_size 20m;
20m為允許最大上傳的大小吹菱。
3.保存后重啟nginx,問題解決彭则。$sudo service nginx restart
- issue: 304
第二天刷新頁面時鳍刷,服務(wù)器出現(xiàn)304狀態(tài)碼。
- issue:
403
Forbidden >> [資源沒有權(quán)限]
$chmod -R +r *
nginx/error.log
[error] open() "/.../js/jquery.js" failed (13: Permission denied)
- issue:
500
Server Error >> [Django項目運行異常] - issue:
500
Server Error 只能查不能增刪改 >> [alert] Nginx access.logfailed
(No space.) 刪除日志并重啟nginx.
- issue:
502
>> [uwsgi配置錯俯抖,修改ini文件]
修改uwsgi.ini文件输瓜,運行,查看輸出日志run.log芬萍,
$uwsgi uwsgi.ini
瀏覽器訪問尤揣,查看nginx日志/var/log/nginx/error.log
- issue: uWSGI安裝失敗 >> [gcc=4.8]
參考[csdn]
[Future]
- 主頁展示多張合影
主頁考慮滾動切換效果,管理后臺有管理照片入口 - 新聞詳情頁優(yōu)化布局