Pycharm+Django搭建第一個Python Web程序

今天來簡單總結一下使用Pycharm和Django來搭建一個最簡單的Python Web 應用(就是咱們所說的‘Hello World’)。在這裏,咱們首先假設已經安裝好了Python(2.x 和3.x版本都可)。python

安裝Django

 

  不管是Python2.x仍是Python3.x版本,均可以使用pip來安裝Django。在控制檯使用以下命令:web

pip install django
  • 1

安裝成功後,在ipython裏面或者Pycharm的Python console控制檯導入django,並查看版本信息,使用以下命令:正則表達式

import django
django.VERSION
  • 1
  • 2

就看到以下信息,表示django已經安裝成功。django

Out[3]: 
(1, 11, 3, 'final', 0)
  • 1
  • 2
  • 3

接下來就讓咱們用Pycharm 開啓第一個Django程序吧。瀏覽器

 

第一個程序:Hello World

 

 

1. 建立一個django程序

 

  Pycharm能夠幫助咱們很自動化的創建一個完整的項目結構。點擊Pycharm的File,選擇New Project…,在選擇左側的Django,在右側填寫項目路徑和選擇Python版本。以下圖:session


 

點擊確認後,在我剛剛新建的項目文件下會看到如下的文件結構:app


這裏寫圖片描述

 

這裏簡單解釋一下這幾個文件:
  __init__.py:這是一個初始化的空文件,通常咱們不須要動它。
  settings.py: 這是一個配置文件,裏面有關於語言、時區、安裝的app聲明等等信息;
  urls.py: 這個文件裏指明瞭在訪問一個頁面時要調用的視圖啊等的映射,確保在訪問時能夠正肯定位到你要實現的功能;
  wsgi.py: 這是一個關於web程序的wsgi的相關配置,咱們暫時不須要修改它。
  manage.py: 能夠理解爲他是django應用的控制中心,許多命令的實現,都須要他來調動,後面說。函數

2. 爲項目建立一個app

 

  後面咱們每添加一個web application,就須要按照這樣的方式來建立一個app,具體操做以下:
在cmd或者Pycharm的Terminal控制檯裏,cd 進入到上面建立的項目的manage.py文件所在的路徑下,例如:url

cd :\PythonProjects\mysite>
  • 1
  • 2

而後使用manage.py來建立一個app,輸入命令以下:spa

python manage.py startapp blog
  • 1
  • 2

  其中blog是我搖建立的app的名字,以後刷新pycharm的文件結構,會看到在剛剛新建的mysite項目下,會多出來一個blog文件夾,裏面的文件結構以下:


這裏寫圖片描述

 

 

(1)修改blog/views.py

 

  這裏的每一個文件的做用能夠參考文檔,重點說一下重點blog/views.py這個文件,他是一個視圖文件,等你回來咱們要顯示的Hello World就要在這個文件裏實現。咱們在這個文件定義一個函數index()來實現咱們的要求,具體以下:

from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello!')
  • 1
  • 2
  • 3
  • 4
  • 5

 

(2)修改mysite/settings.py

 

  上面新建了app後,咱們就要想將這個app的名字 添加到mysite目錄下的settings.py文件中,找到INSTALL_APP,在末尾添加,具體以下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',  # 這裏直接寫app的名字就好,寫mysite.blog會報錯
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

 

(3)配置mysite/urls.py

 

  這是最後一步配置,須要在這裏指明上面寫的app以及app要實現的功能,否則映射不正確,在訪問網頁的時候回出現404的錯誤,具體以下:

from django.conf.urls import url
from django.contrib import admin
from blog import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', views.index),
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

這裏有幾個地方須要注意:

  • 第一是url的導入,在Django 1.10之前的版本中是使用的pattern,可是在Django1.10版本之後,就去掉了pattern,換成了url,這裏須要注意,這裏使用的是1.11的版本,因此用的是url;
  • 第二是admin的導入,這是默認的映射,你也能夠去掉,可是他的做用後面咱們訪問頁面的時候再說。
  • 第三是url(r’^index/’, views.index)這裏接受兩個參數,一個是用 正則表達式表示的鍵值,這個能夠任意起名,只要在訪問網頁時用它就好了;第二個參數是咱們要實現的那個視圖函數。

 

(4)啓動服務

 

上述的全部文件都配置無誤後,就能夠啓動服務了。在cmd或者Terminal控制檯,cd 到manage.py所在路徑下,執行:

python manage.py runserver
  • 1
  • 2

會看到以下的提示信息:


服務啓動成功提示

 

這個時候咱們在瀏覽器裏輸入圖中提示的地址: http://127.0.0.1:8000/index,(其中index就是urls.py裏咱們設置的那個鍵值),回車後會看到以下界面:


 

若是咱們輸入http://127.0.0.1:8000/admin,則會出現以下的驗證信息:


這裏寫圖片描述

 

 

問題

 

  在修改urls.py文件時,有個問題困擾我好一下子。在導入views時,Pycharm引導的方式是 使用from mysite.blog imoprt views 或者import mysite.blog.views,可是若是這樣作的話,在啓動服務的時候,會報錯ModuleNotFoundError,也就是說根本找不到mysite.blog;把他修改爲from blog import views時,能夠正常啓動服務看到咱們想要的結果。但此時有個問題,會發如今Pycharm中會出現紅色的錯誤提示,很鬱悶有沒有???好吧,咱們就當這是Pycharm的一個bug好了吧,強迫症就先忍忍吧!


這裏寫圖片描述

相關文章
相關標籤/搜索