一、創建django項目
1. 創建python解釋器
mkvirtualenv -p /usr/bin/python3.6 tzproject #創建一個叫tzproject的虛擬環境
2. 創建python項目
1)安裝django
pip install django==2.1.10 # 下載2.1.10版本的django
2)創建django項目
# 首先找到你認為最適合的位置來存放django項目(虛擬機上) cd ~ # 跳轉到家目錄 mkdir first_project # 創建一個叫 first_project 的文件夾 cd first_project # 跳轉到我們剛剛創建好的first_project 文件夾 django-admin startproject tzproject # 創建一個新的叫tzproject的django項目 cd tzproject # 跳轉到我們新創建的django項目文件夾下 ll # 查看當前django項目文件夾中的內容
3. 創建pycharm項目
1)選擇項目目錄
2)配置遠程python解釋器的位置
3)配置遠程項目路徑
4)設置同步配置
找到Tools---->Deployment------>Configuration:
將Mapping中的第二行的地址復制到Connection中的Root path中。並輸入遠程主機ip地址和用戶名和密碼即可連接。
5)下載代碼
找到Tools------>Deployment----->Browse Remote Host打開遠程主機。可以在pycharm的右側看到該遠程主機項目的內容:
右鍵ssh:的這行文件所在位置,右鍵選擇Download from here,下載代碼到本地。
4. 將pycharm配置為django項目
1)選擇django配置
2)配置啟動django的配置(地址和端口都寫成默認的即可,0.0.0.0代表默認任何網址都能訪問,8000是django的默認端口)
3)找到File------>Settings中的Languages&Frameworks中的Django,配置Settings和manage文件
4)點擊綠色三角運行即可
這樣則代表運行成功了。
二、django項目的配置
1. 配置Settings文件(項目文件夾tzproject下的settings文件)
1)設置Settings文件中的允許的主機為全部:
2)配置模板文件路徑
壹:在主目錄文件夾first_project下創建模板文件夾templates
貳:在Settings文件中設置模板文件路徑
將遠程文件夾的路徑BASE_DIR和模板文件夾templates拼接起來作為模板文件夾的路徑
3)配置mysql數據庫
壹:創建新的數據庫使用(以及創建一個單獨的用戶)
貳:配置數據庫
①直接在settings文件中設置
# 配置數據庫 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'tzproject', 'USER':'dj_user', 'PASSWORD':'pythonvip', 'HOST':'192.168.152.162', 'PORT':'3306', } }
由於截圖的時候用戶名寫錯了,所以其實用戶名應該使用創建數據庫用戶時所創建的dj_user這個用戶而不是xinlan。
②在外部創建一個文件,再在settings文件中導入(官方推薦,創建一個untils的功能文件夾,並創建一個db.cnf文件用來存儲數據庫設置,再在settings文件中導入該文件)
[client] database = tzproject # 數據庫名稱 user = dj_user # 登錄數據庫用戶名 password = pythonvip # 登錄數據庫密碼 host = 192.168.152.162 # 數據庫所在ip地址 port = 3306 # 數據庫所在端口,mysql默認3306 default-character-set = utf8 # 數據庫指定編碼
再在settings文件中導入該文件:
# 配置數據庫 DATABASES = { 'default': { # 默認數據庫配置 'ENGINE': 'django.db.backends.mysql', # 數據庫所用端口 'OPTIONS':{ # 數據庫中的各項數據 'read_default_file':'untils/db/db.cnf', # 加載外部文件 }, } }
叄:安裝驅動
①pymysql(在python虛擬環境中安裝pymysql,使用python編寫的)
workon tzproject # 進入tzproject虛擬環境 pip install pymysql # 安裝pymsql
安裝成功后,在項目文件夾tzproject中的_init__.py文件中添加以下兩行代碼
import pymysql pymysql.install_as_MYSQLdb()
此時啟動django項目就可以正常啟動了。
②mysqlclient(官方推薦,使用c寫的,使用時效率會比pymysql更快,default-libmysqlclient-dev這個就是c的那個庫)
sudo apt-get update #先更新 sudo apt-get install default-libmysqlclient-dev # 安裝mysqlclient所依賴的包,所以需要先下載 workon tzproject #進入到tzproject虛擬環境中 pip install mysqlclient -i https://pypi.doubanio.com/simple # 指定安裝包路徑來安裝mysqlclient
其中mysqlclient安裝后不需要在文件中添加任何東西直接啟動即可。
4)配置redis緩存
壹:找到你的redis安裝的位置,查看是否可以使用(使用redis-cli命令來進入redis數據庫,下圖為進入成功的效果圖,代表你的redis數據庫可以使用,它將作為我們項目的緩存存儲的數據庫)
貳:緩存配置(同樣在settings文件中,隨意找個位置填寫緩存設置即可)
# 配置緩存 CACHES = { # 默認的緩存引擎 "default":{ "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://192.168.152.162:6379/0", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } }, # session緩存設置 'session':{ "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://192.162.152.162:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } } # session存儲緩存設置 SESSION_ENGINE = 'django.contrib.sessions.backends.cache' SESSION_CACHE_ALIAS = 'session'
叄:由於這個需要使用這個django_redis.cache.RedisCache包,所以我們需要在python虛擬環境安裝django-redis這個包
pip install django-redis # 安裝redis
肆:運行django項目,出現如下效果圖證明我們的緩存配置沒有錯誤
5)配置日志器
壹:在settings文件中隨便找個位置來添加日志配置
# 日志 LOGGING = { # 版本 'version': 1 , # 是否禁用已經存在的日志器 'disable_existing_loggers': False, # 日志格式 'formatters':{ # 詳細日志 'verbose':{ 'format': '{levelname} {asctime} {module} {lineno:d} {message}', 'style': '{', }, # 簡單日志 'simple':{ 'format': '{levelname} {module} {lineno:d} {message}', 'style': '{', }, }, # 過濾器 'filters': { 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', }, }, # 日志處理器 'handlers': { # 控制台顯示內容 'console': { 'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.StreamHandler', 'formatter': 'simple', }, # 文件寫入內容 'file': { 'level': 'INFO', # 這個handler可以記錄一組日志文件 'class': 'logging.handlers.RotatingFileHandler', 'filename': os.path.join(BASE_DIR, 'logs/tz_django.log'), # 單個日志文件的最大字節數 'maxBytes': 300*1024*1024, # 日志文件個數(超過了10將會覆蓋之前的日志文件) 'backupCount': 10, # 日志格式 'formatter': 'verbose' }, }, # 總體日志設置 'loggers': { 'django': { 'handlers': ['console','file'], 'level': 'INFO', # 日志接收的最低級別 'propagate': 'True', }, }, }
貳:需要注意的是,由於日志我們設置的位置是 logs/tz_django.log 所以我們得先在主目錄上把logs這個文件夾創建出來,不然運行會報錯
叄:運行django項目,出現如下效果圖證明我們的配置沒有錯誤
6)配置時區和靜態文件
壹:配置時區和語言
# 將語言設置為中文 LANGUAGE_CODE = 'zh-Hans' # 將地區設置為上海 TIME_ZONE = 'Asia/Shanghai'
貳:配置靜態文件
①首先創建一個static文件夾
②然后在settings文件中添加靜態文件的地址
# 配置靜態文件 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ]
其中BASE_DIR是我們執行該項目時,該項目的存在地址。os.path.join則是將項目地址和靜態文件夾static組合起來形成新的地址,即靜態文件地址。
7)創建應用(app)
壹:為了方便管理,我們在主目錄新建一個叫apps的文件夾用來存放我們所有的app
貳:然后打開我們的虛擬機,即我們的遠程項目所在地址進入apps這個文件夾並創建應用
cd apps # 從項目文件夾進入里面的apps這個文件夾 python ../manage.py startapp news # 在apps這個文件夾中創建一個名叫news的新聞管理應用 python ../manage.py startapp course # 在apps這個文件夾中創建一個名叫course的課程管理應用 python ../manage.py startapp doc # 在apps這個文件夾中創建一個名叫doc的文檔管理應用 python ../manage.py startapp user # 在apps這個文件夾中創建一個名叫user的用戶管理應用
叄:打開我們pycharm右邊的遠程主機將我們新創建的四個app下載到我們的本地項目中
肆:在settings文件中配置我們的app並進行優化
①在settings文件中設置apps的路徑優化(將apps路徑加入到sys.path這個路徑中,方便系統快速的搜索)
import sys # 優化:將我們剛剛創建apps文件目錄,加載到sys.path中,這使它將會導入更快 sys.path.insert(0, BASE_DIR) sys.path.insert(1, os.path.join(BASE_DIR, 'apps'))
需要注意的是,因為我們的路徑是包括BASE_DIR的,所以我們的優化設置需要卸載BASE_DIR獲得的路徑下面。
②在主目錄上first_project右鍵選擇Mark Directory as-------->Sources Root
③在主目錄上first_project下的apps文件夾右鍵選擇Mark Directory as-------->Sources Root
將兩個文件夾路徑都設置到根目錄上,方便pycharm快速的找到該目錄並提示
④將我們應用在settings文件中注冊
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 注冊app 'course', 'doc', 'news', 'user', ]
2. 在開啟服務后在瀏覽器上訪問我們的django項目,如果出現綠色的小火箭,則證明我們的配置都正確
三、在碼雲平台創建項目
1. 新建倉庫(獲得.gitignore文件,.gitignore里面存儲的是上傳時不理睬的文件名稱列表)
2. 將我們本地的項目存儲的文件夾變成git倉庫文件夾
找到我們的項目文件所存儲的位置,進入該項目文件夾后右鍵Git Bash Here,執行git init,將這個django項目文件夾變成git倉庫文件夾。
3. 將我們之前創建倉庫來獲得的.gitignore文件下載解壓到本地,並將它復制到我們的項目文件夾中,並添加我們需要忽略的文件
由於.idea是管理pycharm的文件,對應我們的項目來說沒有任何意義,所以上傳的時候完全可以忽略它。
4. 然后我們填寫個人信息后將這些文件都從我們的工作區提交到我們的倉庫區
.
5. 然后我們在碼雲上創建一個新的空倉庫
6. 然后我們復制新建的空倉庫的公鑰
7. 然后將我們的本地的git倉庫(django項目)添加遠程倉庫(碼雲上新建的空倉庫)
四、將項目推送到碼雲
git push origin master # 將我們本地倉庫中的文件(django項目上傳到碼雲上)
執行后查看我們的遠程倉庫,可以看到我們的文件以及上傳上去了。