django項目環境搭建
標簽: 框架
項目環境搭建
一、創建django項目
1.創建python虛擬環境
在虛擬機上創建python虛擬環境,因為實際項目部署,實在linux
mkvirtualenv -p /usr/bin/python3.6 tzproject
2.創建django項目
1.安裝django
選擇安裝django2.1.x最新的一個版本2.1.10
pip install django==2.1.10
2.創建django項目
cd ~/project/ # cd到你想放django項目路徑的地方
django-admin startproject tzproject
3.創建pycharm項目
通過pycharm的遠程項目,連接虛擬機,開發。
1.選擇項目目錄
選擇你要存放項目文件的目錄,注意django項目和pycharm項目的根目錄一定要保持一致,不要用一個pycharm的項目,管理多個django項目。
2.配置遠程解釋器
配置剛才創建的虛擬解釋器
3.配置遠程項目路徑
4.設置同步配置
5.下載代碼
4.pycharm配置Django項目
代碼下載后,就需要將在pycharm中將項目配置成django項目,以便使用pycharm的各種便捷提示功能。
做好虛擬機端口映射,在瀏覽器里輸入http://127.0.0.1:8000
你應該看到下面的畫面
二、django項目設置
1.配置模板文件
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
# 將模板標簽內置到模板中 https://docs.djangoproject.com/en/2.1/topics/templates/
'builtins': ['django.templatetags.static'],
},
},
]
2.配置mysql數據庫
-
創建數據庫
mysql> create database tzproject charset=utf8mb4; Query OK, 1 row affected (0.00 sec)
-
創建用戶
mysql> greate user 'dj_user'@'host' identified by 'pythonvip'; Query OK, 1 row affected (0.00 sec)
-
授權
mysql> grant all privileges on tzproject.* to 'dj_user'@'%'; Query OK, 0 rows affected (0.03 sec) mysql> flush privileges; Query OK, 0 rows affected (0.02 sec) # 授權創建一起寫 grant all privileges on tzproject.* to 'xinlan'@'%' indentified by 'pythonvip'
-
配置settings
方法一:直接在settings.py文件中添加數據庫配置信息
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 數據庫引擎 'NAME': 'tzproject', # 數據庫名 'USER': 'dj_user', # 用戶名 'PASSWORD': 'pythonvip', # 密碼 'HOST': '127.0.0.1', # 主機IP 'PORT': 3306 # 端口 } }
方法二:將數據庫配置信息存到一個文件,在settings文件中將其引入。(推薦)
新建數據庫配置文件
db.cnf
(名字隨意)
db.cnf文件內容:[client] database = tzproject user = dj_user password = pythonvip host = 127.0.0.1 port = 3306 default-character-set = utf8
在settings.py文件中引入db.cnf
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS':{ 'read_default_file': 'utils/db/db.cnf' } } }
官方文檔:https://docs.djangoproject.com/en/2.1/ref/databases/#connecting-to-the-database
3.安裝mysql數據庫的python驅動
?mysql數據庫配置完成后,運行django服務會報如下錯誤,官方推薦安裝mysqlclient1.3.7以上版本,也可以安裝pymysql,并且需要在settings.py文件所在目錄包中的__init__.py
中導入pymysql。
-
安裝mysqlclient
# 首先更新ubuntu sudo apt-get update
# 然后按照依賴庫 sudo apt-get install default-libmysqlclient-dev
# 再切換到虛擬環境中 workon tzproject
# 最后安裝mysqlclient pip install mysqlclient -i https://pypi.doubanio.com/simple
-
安裝pymysql
# 安裝pymysql pip install pymysql -i https://pypi.doubanio.com/simple
在
settings.py
文件所在目錄下的__init__.py
導入
推薦使用第一種方式,mysqlclient
更快更安全,官方推薦。
4.配置redis緩存
用于存放用戶session信息,以及需要緩存的各種信息。
# 在虛擬機中安裝django-redis
pip install django-redis
# settings.py文件中指定redis配置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
'session': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
},
}
# session存儲緩存設置
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = 'session'
文檔地址:https://django-redis-chs.readthedocs.io/zh_CN/latest/
django文檔:https://docs.djangoproject.com/en/2.2/topics/http/sessions/#using-cached-sessions
5.配置日志器
用于記錄系統運行過程中的各種日志信息。
在項目根目錄中創建一個logs文件夾,用于存放日志文件
# 日志
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,
# 日志文件個數
'backupCount': 10,
'formatter': 'verbose'
},
},
'loggers': {
'django': {
'handlers': ['console', 'file'],
'level': 'INFO', # 日志器接收的最低級別
'propagate': True,
},
},
}
使用方法
# 使用方法
# import the logging library
import logging
# Get an instance of a logger
# 此處的django為,settings.py文件中,LOGGING配置下的loggers中定義的日志器名稱
logger = logging.getLogger('django')
def my_view(request, arg1, arg):
...
if ***:
# Log an error message
logger.error('Something went wrong!')
官方文檔:https://docs.djangoproject.com/en/2.2/topics/logging/#module-django.utils.log
6.時區配置
# 修改語言
LANGUAGE_CODE = 'zh-hans'
# 修改時區
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
# 使用時區
USE_TZ = True
7.靜態文件配置
在項目根目錄創建一個static目錄,用于存放靜態文件(css, js, image, font等)
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
8.創建應用
本項目主要由4個模塊組成,分別為新聞文章模塊,課程視頻播放模塊,文檔下載模塊,用戶管理模塊等。在項目根目錄下創建一個apps目錄用于存放各子應用。
然后cd到apps目錄創建各子應用
~$ cd ~/code/tztz/apps/
~/code/tztz/apps$ workon tzproject
(tzproject) ~/code/tztz/apps$ python ../manage.py startapp news
(tzproject) ~/code/tztz/apps$ python ../manage.py startapp course
(tzproject) ~/code/tztz/apps$ python ../manage.py startapp doc
(tzproject) ~/code/tztz/apps$ python ../manage.py startapp user
再到settings文件中,加入如下設置
import sys
# 創建應用之后,把apps目錄加入到sys.path中
sys.path.insert(0, BASE_DIR)
sys.path.insert(1, os.path.join(BASE_DIR, 'apps'))
接著分別在apps文件夾和項目根目錄文件夾上右鍵,加入到Source Root中,優化導入路徑(pycharm提示)。
最后將應用添加到INSTALLED_APPS列表中
INSTALLED_APPS = [
# ...
'user',
'news',
'doc',
'course'
]
三、在碼云平臺創建項目
git服務平臺:
- 主要使用github(最主流)
- 國內訪問速度慢
- 托管私有項目收費
- 國內一般使用碼云gitee
- 國內訪問速度快
- 托管私有項目免費(限制開發人數)
- 公司中使用gitlab或者svn來搭建
創建步驟
1.***云賬號注冊
2.創建倉庫
-
登錄碼云后,通過網站右上角的「+」號,選擇「新建倉庫」,進入新建倉庫頁面
-
填寫倉庫信息
-
點擊「創建」,即可在碼云上創建你的第一個倉庫。
3.生成ssh公鑰
ssh-****** -t rsa -C '[email protected]'
按照提示完成三次回車,即可生成ssh key。通過查看~/.ssh/id_rsa.pub
文件內容,獲取到你的public key
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
復制生成后的 ssh key,通過設置主頁**「SSH公鑰」->「添加公鑰」**,添加生成的public key到倉庫中。
4.克隆項目到本地
復制ssh鏈接
克隆項目到虛擬機或者物理機都可以。
git clone [email protected]:wcflove/tztz.git
5.添加遠程倉庫
如果是先在本地建立了項目, 再在碼云上創建遠程倉庫,那么操作如下。
-
首先cd到django項目根目錄,然后創建git本地倉庫
cd ~/project/tzporject git init
-
然后添加遠程倉庫
git remote add origin [email protected]:wcflove/tztz.git
四、將項目推送到碼云
手動同步代碼(更保險),然后運行django服務,檢查無誤后就可以提交代碼,然后推送到碼云了
-
編寫.gitignore文件
為了讓git的運行速度更快,有些不需要添加到倉庫的文件比如pycharm的項目設置文件.idea文件夾,可以通過.gitignore文件來設置忽略.idea文件夾, 在.gitignore文件的最后加上下面兩行
.... # pycharm .idea/
-
配置好推送人的身份信息(填寫自己的名字和郵箱地址)
$ git config user.name "xinlan" $ git config user.email "[email protected]"
-
將代碼推送至本地倉庫
# 工作區添加到暫存區 $ git add . # 暫存區提交到倉庫 $ git commit -m 'project init'
-
將代碼推送到碼云
$ git push origin master
注意,如果出現,推送失敗就需要運行強推
$ git push -f origin master
碼云中就出現了,你本次寫的代碼
智能推薦
Linux+Jenkins環境搭建以及自動部署django項目
一、Jenkins的優點 1、傳統網站部署流程 一般網站部署的流程 這邊是完整流程而不是簡化的流程 需求分析—原型設計—開發代碼—內網部署-提交測試—確認上線—備份數據—外網更新-最終測試 ,如果發現外網部署的代碼有異常,需要及時回滾。 一般是運維來做 1、功能測試 2、上線的時間 3、 jenkins...
搭建Django項目虛擬環境(Windows系統下)
(一)1、安裝virtualenv 我們可以使用正式的Python環境中的pip進行安裝。進入cmd界面,運行“ pip install virtualenv ”,完成安裝后,可以運行“ where virtualenv ”驗證安裝情況。 2、建立虛擬環境 為了方便管理,我們要建立一個目錄,統一來放置所有的虛擬環境。  ...
Django建教育平臺(一)--搭建環境,新建項目
之前[單頁面]Django搭建教育平臺系列, 是用單頁面form來練習django的用法, 沒有建立完整的網站, 接下來才真正建立多頁面網站. 1. 創建python3虛擬環境 在cmd命令行輸入mkvirtualenv -p C:\Python34\Python.exe elearn_py3 -p后面所寫的python路徑依實際Python具體安裝路徑而定, 我這里選擇Python3.4版本. ...
如何在虛擬機搭建Django項目--小白入門(Django環境搭建)
1.Django介紹: 1.Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MTV的框架模式,即模型M,視圖V和模版T。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟件。 2.Django是一個基于MVC構造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關注的是模型(Mod...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...