今天咱們學習Django框架配置,首先先來看一下如何在Django中建立APP!css
首先咱們打開PyCharm,找到以前你建立的Django項目,個人項目是First_Project
:html
(1)先選中你要運行的項目-->而後點擊Tools-->Run manage.py Task-->進入manage.py控制檯(或者直接快捷鍵Ctrl+Alt+R進入); 前端
(2)而後在manage.py控制檯中輸入startapp 你想要的名稱
建立app,如我須要建立一個名爲users的app,那我須要在控制檯中輸入startapp users
; python
(3)你能夠建立一個或多個app,而爲了方便管理多個app文件,咱們能夠建立一個apps目錄,將全部建立的app都移入其中; 數據庫
(4)若是咱們想要直接使用apps裏面的app文件導入模塊,咱們能夠將apps目錄設置爲Sources Root,操做爲:選中apps文件夾-->右擊-->Mark Directory as-->Sources Root,那麼pycharm將會知道,文件的根路徑爲apps;django
(5)設置完後,咱們能夠直接導入apps目錄下任意app中的模塊了。可是僅限於在PyCharm中運行,若是想在命令行中運行則會報錯(由於Python解釋器認爲:Python模塊的搜索路徑是從當前運行的Python文件所在目錄開始尋找,而後在是項目的根目錄, 一級一級找,最後到site-packages目錄)。 那怎麼才能在命令行中運行不報錯,且將apps在命令行模式下也是Sources Root的話,咱們須要在在項目的settings.py文件中導入sys模塊,而且加入一行代碼:session
# 目的就是在django的sys.path模塊搜索路徑中的第一個位置加上apps的路徑 sys.path.insert(0, os.path.join(BASE_DIR, 'apps'));
os.environ.setdefault"DJANGO_SETTINGS_MODULE", "First_Project.settings") django.setup()
配置static靜態文件查找路徑: 1.首先打開settings文件,找到STATIC_URL = '/static/'
,這表示指定static靜態文件路徑app
2.可是在template中是沒法使用這個路徑的,由於沒有把這個路徑加入到項目的路徑中,所以須要把static路徑加入到項目的路徑中咱們須要添加一句代碼:框架
# 表示把static路徑加入到項目的路徑中 STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"), )
3.這樣在template中引用這個靜態文件就能夠只要指定相對路徑就行了學習
<link rel="stylesheet" type="text/css" href="{% static 'css/course/banner.css' %}"/>
配置media媒體文件查找路徑: 1.在settings文件中加入MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
語句,表示把用戶上傳的全部的東西,如圖片等,保存到這個/media/目錄下
2.若是咱們想要圖片上傳到/media/banner/%Y/%m/目錄下(Y表示年,m表示月),咱們能夠這樣寫
image = models.ImageField(max_length=100, upload_to='banner/%Y/%m', verbose_name='用戶頭像圖片')
3.那麼在前端的html頁面中,咱們就可使用用戶上傳的圖片或其餘的能夠在html頁面顯示的東西, 由於數據庫中保存了圖片上傳的路徑,{{ MEDIA_URL }}
至關於 /media/
,{{ request.user.image }}
至關於 user/1.png
,那麼 {{ MEDIA_URL }}{{ request.user.image }} 至關於 /media/user/1.png
<img width="20" height="20" src="{{ MEDIA_URL }}{{ request.user.image }}"/>
4.所以必須在urls.py文件中寫個路由處理邏輯
from django.views.static import serve url(r'^media/(?P<path>.*)', serve, {'document_root': MEDIA_ROOT})
咱們要注意每次建立一個app都須要在settings中將它註冊進來,若是不註冊進來,那麼執行migration的時候就不會生成表,將app的名稱加入到INSTALLED_APPS中;
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users', 'courses', 'teachers', 'schools', ]
最後在點擊Tool--> Run manage.py Task,在控制檯中依次執行makemigrations和migrate生成數據庫表;