Django學習小記1-安裝配置

Django是一個開放源代碼的Web應用框架,由Python寫成。css

python 中的web框架有許多例如:Django、Tornado、Flask..而Django相較與其餘WEB框架其優點爲:大而全,框架自己集成了ORM、模型綁定、模板引擎、緩存、Session等諸多功能。html

Django採用了MVC的軟件設計模式,即模型M,視圖V和控制器C。python

安裝篇

01 安裝Django

安裝以前先確保你已經安裝了python(這個就不用說了吧=.=!),並順便瞅一眼版本對應關係,能夠略過~jquery

  

 0x01 Linux下安裝:

第一種方式是pip安裝linux

pip install Django

這是最簡潔的安裝方式,可是我在python2.7下安裝後引入其餘模塊會遇到不少坑,全部建議升級到python3.6之後。再安裝之。web

固然另外一種方式就是源碼安裝:django

下載源碼包:https://www.djangoproject.com/download/bootstrap

輸入如下命令並安裝:設計模式

tar -zxvf Django-X.Y.tar.gz    # 解壓下載包
cd Django-X.Y                 # 進入 Django 目錄
python setup.py install       # 執行安裝命令

注:安裝成功後 Django 位於 Python 安裝目錄的 site-packages 目錄下。瀏覽器

 0x02 Win下安裝:

第一種方法是安裝包:

就像安裝python安裝包同樣,下載Django 下載地址:https://www.djangoproject.com/download/

(這時你須要瞄一眼上面那個版本對應表,By the way:目前 Django 1.6.x 以上版本已經徹底兼容 Python 3.x。)

下載完 Django 壓縮包,解壓並和Python安裝目錄放在同一個根目錄,進入 Django 目錄,執行python setup.py install,而後開始安裝,Django將要被安裝到Python的Lib下site-packages。

   而後是配置環境變量,將這幾個目錄添加到系統環境變量中: C:\Python33\Lib\site-packages\django;C:\Python33\Scripts。 添加完成後就可使用Django的django-admin.py命令新建工程了。

   第二種方法就是pip命令行安裝(推薦)

pip install django==1.11.11

 第三種方法就是Pycharm安裝:

而後搜索安裝django便可。

0x03 MAC下安裝

參考這個連接 https://www.runoob.com/django/django-install.html

 

02 配置篇

1、建立一個項目

0x01 命令行下執行django-admin(不管linux \window)

django-admin startproject mysite

這個要注意切換到在你想要建立的目錄下執行,由於會就地建立!

0x02 pycharm建立

 

 建立之後的目錄大體是這樣:

mysite/       #項目的容器
├── manage.py  # 管理文件,可以讓你以各類方式與該 Django 項目進行交互
└── mysite  # 項目目錄
    ├── __init__.py   #一個空文件,告訴 Python 該目錄是一個 Python 包
    ├── settings.py  # 配置文件
    ├── asgi.py  # asgi服務器來處理websocket請求
    ├── urls.py  # 路由系統 --> URL和函數的對應關係
    └── wsgi.py  # runserver命令就使用wsgiref模塊作簡單的web server

#如下我這建立的項目例子是Secfile而非mysite

解釋:

  • manage.py #對當前Django程序全部操做能夠基於python  manage.py runserver | startapp appname | syncdb | makemigrations | migrate | createsuperuser
  • wsgi.py #用於定義django用什麼socket實現
  • WSGI(Web Server Gateway Interface)是一種規範,它定義了使用python編寫的web app與web server之間接口格式,實現web app與web server間的解耦。

2、運行Django項目

python manage.py runserver 0.0.0.0:8000

0.0.0.0 讓其它電腦可鏈接到開發服務器,8000 爲端口號。若是不說明,那麼端口號默認爲 8000。

在瀏覽器輸入你服務器的 ip(這裏咱們輸入本機 IP 地址: 127.0.0.1:8000) 及端口號,若是正常啓動,輸出結果以下

 

pycharm下運行直接點擊按鈕run 項目就行!

 

 3、配置文件配置

首先咱們看一下默認的 url.py文件,

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

#這裏既是URL與函數的對應關係,當訪問http://127.0.0.1:8000/admin/時,就會執行 admin.site.urls這個寫好的函數。

而函數的做用既是處理用戶請求而且返回結果,其至少要有一個參數

例:

from django.contrib import admin
from django.urls import path

from django.shortcuts import HttpResponse
def login(request):
    '''
    處理用戶請求並返回內容
    :param request:用戶請求相關的全部信息(對象)
    :return:
    '''
    return HttpResponse('hello word!')

    
urlpatterns = [
    #path('admin/', admin.site.urls),
    path('login/',login),
]

這個例子是嘗試建立了一個login的函數,函數應用了HttpReponse,就是用戶訪問login/時,return用戶一字符串。執行以下:

 

 充分說明了 路由關係處理請求的函數

這個時候,咱們僞裝要作一個用戶登陸界面,你給用戶顯示一句話也不太禮貌對吧,這時這樣實現:

那咱們可不能夠這樣:

html標籤信息返給用戶呢:

 

1 def login(request):
2     '''
3     處理用戶請求並返回內容
4     :param request:用戶請求相關的全部信息(對象)
5     :return:
6     '''
7     return HttpResponse('<input type="text" />')

 

 

 神奇啊!

藉助這個思路,咱們就能夠在templates文件夾下放一個login.html啊,可可這個文件怎麼告訴django怎麼讀取呢?由於HttpReponse只認識字符串啊!

那砸辦?--> 用 render模塊!

from django.shortcuts import HttpResponse,render def login(request):
    #return HttpResponse('<input type="text" />')
    return render(request,'login.html')

urlpatterns = [
    #path('admin/', admin.site.urls),
    path('login/',login),
]

這個render就是自動找到模板路徑下的login.html讀取內容並返回給用戶(本質用的仍是HttpResponse)

而那個"login.html"文件就能夠任意發揮,作一個登錄的界面。例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登陸 </title>
</head>
<body style="background-color:PowderBlue;">
    <form>

        用戶名:<br>
        <input type="text"  name="usr" required autofocus placeholder="username"><br>
        密碼:<br>
        <input type="password" name="passwd" maxlength="12" placeholder="password"><br><br>
        <input type="submit" value="登陸"/>

    </form>
</body>
</html>

對應關係是在setting.py中設置好的,已經把templates做爲basez_dir了,因此這個文件夾的名字路徑要一致才行 。

配置模板路徑:

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',
            ],
        },
    },
]

 這裏相對實際就多了一個模板路徑配置

 那麼想設置CSS靜態文件保存哪裏?

靜態文件配置:便是你寫HTML文件是導入的js 、jQuery、bootstrap\圖片等靜態文件路徑

STATIC_URL = '/static/'  # HTML中使用的靜態文件夾前綴
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),  # 靜態文件存放位置
]

注意1.在setting.py最後面添加位置,/static/名字對應便可非強制該名;2.逗號,必定不要忘記!

同時你html裏的路徑也要作響應的修改

<script src="/static/jquery-3.2.1.min.js"></script>
<script src="/static/bootstrap/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">

舉個栗子:

 

 

 

 

禁用csrf

剛開始測試使用的時候可在配置文件中暫時禁用csrf中間件,方便表單提交測試。

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',     ###  <---- 將這一行註釋
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

總結一下,建立django的3個步驟:
    
  1.建立project 
2.配置       
--模板路徑       'DIRS': [os.path.join(BASE_DIR, 'templates')]       --靜態文件路徑  3. 先禁掉csrf

 

相關文章
相關標籤/搜索