Django的下載與使用基礎


下載安裝

  1. 命令行

    pip3 install django==1.11.23 -i https://pypi.tuna.tsinghua.edu.cn/simple 
  2. pycharm

    file -- > settings --> Project Interpreter --> + --> 選擇響應的版本下載  

創建項目

  1. 命令行

    先建立好本地文件夾,然后再本文件夾下執行 django-admin startproject  項目名稱

  2. pycharm

    flie ---> new_project ---> django --->項目路徑 --->選解釋器

目錄說明

 

 mysite/
 ├── manage.py  # 管理文件,整個Django項目的啟動文件
 └── mysite  # 項目目錄
    ├── __init__.py
    ├── settings.py  # 配置
    ├── urls.py  # 路由 --> URL和函數的對應關系
    └── wsgi.py  # runserver命令就使用wsgiref模塊做簡單的web server

 

啟動項目

  1. 命令行

    【注意**】切換到項目根目錄  
    
    python manage.py runserver # 127.0.0.1:8000  默認
    python manage.py runserver 80 # 127.0.0.1:80  修改端口
    python manage.py runserver 0.0.0.0:80 # 0.0.0.0:80 修改IP和端口允許所有主機通過80端口進行訪問
  2. pycharm

    點綠三角啟動帶有dj標記的項目,不是簡單的右鍵運行文件

三件套

 

導入
from django.shortcuts import HttpResponse, render, redirect

 

HttpResponse

內部傳入一個字符串參數,返回給瀏覽器。

 def index(request):
    # 業務邏輯代碼
    return HttpResponse("OK")

render

除request參數外還接受一個待渲染的模板文件和一個保存具體數據的字典參數。

將數據填充進模板文件,最后把結果返回給瀏覽器。

 def index(request):
    # 業務邏輯代碼
    return render(request, "index.html", {"name": "alex", "hobby": ["燙頭", "泡吧"]})

redirect

接受一個URL參數,表示跳轉到指定的URL。

 def index(request):
    # 業務邏輯代碼
    return redirect("/home/")

簡單使用

urls.py寫url 和函數的對應關系 寫函數

 from django.shortcuts import HttpResponse, render
 ​
 def index(request):
    return HttpResponse('這里是index')   # 返回字符串
 ​
 def home(request):
    return render(request, 'home.html')   # 返回html頁面
 ​
 urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', index),   # 路徑和函數的對應關系
    url(r'^home/', home),
 ]

靜態文件配置

在項目根目錄存放靜態文件夾,靜態文件夾下可以存放css、js、img等項目中公用的靜態文件或是文件夾。如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以。

 在settings.py中設置
 ​
 STATIC_URL = '/static/'  # 別名,引入靜態文件時以static開頭,這里的static不是代表的目錄
 ​
 STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
 ]
 ​
 【舉例】
 STATICFILES_DIRS = [               #按照列表的順序進行查找
    os.path.join(BASE_DIR, 'x1'),
    os.path.join(BASE_DIR, 'static'),
    os.path.join(BASE_DIR, 'x2')
 ]  

靜態文件

MIDDLEWARE中間件

如果是提交post請求,注釋掉settings.py下的MIDDLEWARE屬性的csrf中間件 'django.middleware.csrf.CsrfViewMiddleware',用改解決請求時出現403 錯誤

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

TEMPLATES模板路徑設置

settings.pyTEMPLATES屬性中,設置公用temples路徑,是指到 BASE_DIR/templates文件夾中去取模板

 TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]  #是指到  BASE_DIR/templates文件夾中去取模板
        ,
 ]

后邊接觸到app后,還可以在app中建立templates,是app專用的。

登錄表單設置

form表單

  1. action 提交的地址,默認是往本地址提交數據 ;method 請求方法,默認是get,如果是實現認證功能的話,需要手動改成post

  2. input 需要有name ,用於提交數據時數據以可知的鍵值對方式傳輸,便於進行數據處理;required=""表示是必填項

  3. submit 提交的按鈕或者input

  4. 前端校驗,在form標簽中使用 novalidate 

  5. django 中可以在函數中使用request.method從看看瀏覽器提交的請求方式;使用request.POST可以獲取form提交的數據,獲取的是一個字典

  6. 重定向:從 django.shortcuts中導入redirect ,讓請求的頁面跳轉到其他指定的頁面。 redirect("https://cn.bing.com") 跳轉到指定的網頁; redirect("/home/") 跳轉到本地的頁面,前邊的/必須要寫,不然會加到前邊的地址上;

前端模板

APP

將urls.py中定義的功能分類存放

新建APP

命令行:

python manage.py startapp app名稱

pycharm中:

tools --> run manage.py task --> startapp app名

注冊APP

在settings中進行注冊

 INSTALLED_APPS = [
    'app01',  # 方法一
    'app01.apps.App01Config',  # 推薦寫法
 ]

在urls.py中導入

從app中把函數或者功能導入到urls.py中

from app01 import views

目錄

migrations文件夾存放遷移文件用

admin.py django admin

apps.py app的信息

models.py 模型 model 跟數據庫有關

views.py 寫函數和功能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM