学习django笔记(天天生鲜)
bug1:
celery 使用(防止alueError: not enough values to unpack (expected 3, got 0))
由于使用的是4.2版本celery所以使用’celery -A celery_tasks.handle worker --pool=solo -l info’ 命令而不是’celery -A celery_tasks.handle worker --loglevel=info’
FastDFS安裝
5.1 安裝fastdfs依賴包
1. 解壓縮libfastcommon-master.zip
2. 進入到libfastcommon-master的目錄中
3. 執(zhí)行 ./make.sh
4. 執(zhí)行 sudo ./make.sh install
5.2 安裝fastdfs
1. 解壓縮fastdfs-master.zip
2. 進入到 fastdfs-master目錄中
3. 執(zhí)行 ./make.sh
4. 執(zhí)行 sudo ./make.sh install
5.3 配置跟蹤服務(wù)器tracker
1. sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
2. 在/home/python/目錄中創(chuàng)建目錄 fastdfs/tracker?????
mkdir –p /home/python/fastdfs/tracker
3. 編輯/etc/fdfs/tracker.conf配置文件??? sudo vim /etc/fdfs/tracker.conf
修改 base_path=/home/python/fastdfs/tracker
5.4 配置存儲服務(wù)器storage
1. sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
2. 在/home/python/fastdfs/ 目錄中創(chuàng)建目錄 storage
?? mkdir –p /home/python/fastdfs/storage
3. 編輯/etc/fdfs/storage.conf配置文件? sudo vim /etc/fdfs/storage.conf
修改內(nèi)容:
base_path=/home/python/fastdfs/storage
store_path0=/home/python/fastdfs/storage
tracker_server=自己ubuntu虛擬機的ip地址:22122
5.5 啟動tracker 和 storage
sudo service fdfs_trackerd start
sudo service fdfs_storaged start
直到這一步,系統(tǒng)報錯:
Failed to start fdfs_trackerd.service: Unit fdfs_trackerd.service not found
解決方式:關(guān)閉虛擬機,更換網(wǎng)絡(luò)連接方式為NAT,再重啟,這時候,更改,再次啟動會發(fā)現(xiàn),不報錯了。
5.6 測試是否安裝成功
1. sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
2. 編輯/etc/fdfs/client.conf配置文件? sudo vim /etc/fdfs/client.conf
修改內(nèi)容:
base_path=/home/python/fastdfs/tracker
tracker_server=自己ubuntu虛擬機的ip地址:22122
3. 上傳文件測試:
fdfs_upload_file /etc/fdfs/client.conf 要上傳的圖片文件
如果返回類似group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg的文件id則說明文件上傳成功
所使用的fastFDFS自定義的storage類
settings.py中添加:
# 設(shè)置Django的文件存儲類 DEFAULT_FILE_STORAGE = 'utils.fdfs.storage.FDFSStorage' # 設(shè)置fdfs使用的client.conf文件路徑 FDFS_CLIENT_CONF = os.path.join(BASE_DIR, './utils/fdfs/client.conf') # 設(shè)置fdfs存儲服務(wù)器上nginx的IP和端口號(默認8888) FDFS_URL = 'http://192.168.243.129:8888/'
新建的存放自定義storage類的.py文件:
from django.conf import settings from django.core.files.storage import Storage from django.utils.deconstruct import deconstructible from fdfs_client.client import Fdfs_client, get_tracker_conf @deconstructible class FDFSStorage(Storage): """自定義的fastdfs文件存儲系統(tǒng)類""" def __init__(self, client_conf=None, base_url=None): """初始化""" if not client_conf: client_conf = settings.FDFS_CLIENT_CONF self.client_conf = client_conf if not base_url: base_url = settings.FDFS_URL self.base_url = base_url def _open(self): """打開文件""" pass def _save(self, name, content): """保存文件""" client = Fdfs_client(get_tracker_conf(self.client_conf)) res = client.upload_by_buffer(content.read()) if res.get('Status') != 'Upload successed.': # 上傳失敗 raise Exception('上傳文件到fast dfs失敗') # 獲取返回的文件ID filename = res.get('Remote file_id') return filename.decode() def exists(self, name): '''在save()函數(shù)之前執(zhí)行,Django判斷文件名是否可用 返回True如果給定的名稱引用的文件在存儲系統(tǒng)中已經(jīng)存在,或者False如果名稱是適用于一個新的文件。 本項目文件并非存放在django中,即返回一定為False''' return False def url(self, name): '''返回訪問文件的url路徑''' return self.base_url + name
從網(wǎng)上下載的client.conf文件中只需要修改:
# the base path to store log files 配置存放日志文件的路徑 base_path=F:\project\log # "host:port", host can be hostname or ip address #配置tracker_server IP地址,端口號port默認22122 tracker_server=192.168.243.129:22122
總結(jié)
以上是生活随笔為你收集整理的学习django笔记(天天生鲜)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot 整合druid
- 下一篇: 单片机人流统计装置的程序_单片机其实不难