python-django-01

Django1

 

一、Python工具 - pip


  一、做用
  Python的軟件包管理器,有一些python包被集成到了pip中。只要被集成到pip中的包,都容許經過pip直接安裝
  二、安裝 pip
sudo apt install python-pip (python2)
sudo apt install python3-pip (python3)
  三、使用 pip / pip3
    一、安裝/更新/刪除 python包
  一、安裝python包
    sudo pip3 install SomePackage
  ex:
    sudo pip3 install pymysql==0.7.11
  二、下載 python 包
  sudo pip3 download SomePackage
  三、刪除 python 包
  sudo pip3 uninstall SomePackage
  四、更新(升級)python包
    sudo pip3 upgrade SomePackage
  二、查看當前環境中所安裝的包
    pip3 list
  三、搜索
    pip3 search SomePackage
  四、展現
    pip3 show SomePackage
  五、記錄現有環境的python包
    一、pip3 freeze > requirements.txt
    將當前python環境中所安裝的內容打包成一個列表
    二、pip3 install -r requirements.txt
    容許在當前系統下,逐一安裝requirements.txt中所列出的內容php


二、Python工具 - VirtualEnv


  一、什麼是VirtualEnv - 虛擬環境
VirtualEnv,是Python中的虛擬環境,在作Python應用開發時,若是不想在大的Python環境中安裝各類各樣的包的話,css

則能夠虛擬出一個Python環境,可讓虛擬環境專門爲某一個應用而存在。容許在虛擬環境中安裝各類包且不影響大的python環境。
  二、安裝 VirtualEnv
sudo pip3 install virtualenv
  三、建立 和 使用 虛擬環境
    一、準備工做
    mkdir my_env
    cd my_env
    二、建立虛擬環境
    virtualenv 虛擬環境名稱
    ex:virtualenv defaulthtml

    建立指定版本的虛擬環境
    virtualenv -p /usr/bin/python2.7 名稱
    virtualenv -p /usr/bin/python3.5 名稱
    三、啓動虛擬環境
    注意:不能在 bin 目錄中啓動虛擬環境
    source bin/activate
    四、退出虛擬環境
    deactivate
    五、刪除虛擬環境
    rm 虛擬環境目錄 -rf前端

  注意:
  在虛擬環境中使用pip安裝和卸載內容時,不要使用 sudo 進行受權python


  四、虛擬環境管理工具 - VirtualenvWrapper
    一、做用
    第三方的管理工具,可以快速,高效並且方便的管理虛擬環境
    二、安裝虛擬環境管理工具
    sudo pip3 install virtualenvwrapper
    三、配置 virtualenvwrapper
    在~目錄下,有一個終端管理文件 .bashrc (在~目錄下,輸入 ll)
    配置 .bashrc ,以便在啓動終端時,就自動啓動虛擬環境管理工具
    修改.bashrc : sudo vi .bashrc
    在 .bashrc 最底部增長如下內容:
      一、export WORKON_HOME=~/my_env
      將 ~/my_env 做爲虛擬環境的管理目錄,全部使用virtualenvwrapper建立的虛擬環境都默認保存於此
      二、若是系統中包含多個python執行環境的話,則添加如下內容
      export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
      三、source /usr/local/bin/virtualenvwrapper.sh
      四、在 ~ 目錄下,執行一遍 .bashrc
        source .bashrc
    四、使用虛擬環境管理工具
      一、建立並進入虛擬環境
        一、mkvirtualenv 虛擬環境名稱
        ex: mkvirtualenv default
        二、
        mkvirtualenv --python=/usr/bin/python2.7 虛擬環境名稱
      二、查看當前所維護的全部虛擬環境
        workon
      三、切換虛擬環境
        workon 虛擬環境名稱
      四、退出虛擬環境
        deactivate
      五、刪除虛擬環境
        rmvirtualenv 虛擬環境名稱

練習:
一、完善 .bashrc 文件
二、建立一個虛擬環境 - env3.5
2.1 、建立 python3.5 虛擬環境
三、完成 虛擬環境的操做
一、切換到 env2.7
workon env2.7
二、退出虛擬環境
deactivate
三、再進入到 env3.5
workon env3.5mysql

 

三、WEB 與 服務器


  一、WEB :表示用戶能夠瀏覽的網頁(HTML,CSS,JS)
  二、服務器
一、硬件 與 軟件
硬件範疇:一臺主機
軟件範疇:一個可以接受用戶請求並給出響應的程序
二、做用
一、存儲WEB上的信息(網頁,圖片,音視頻,css)
二、可以處理用戶的請求(request)並給出響應(response)
三、可以執行服務器端程序:如查詢數據庫
三、WEB與服務器的關係
參考圖 - WEB與服務器的關係
運行在服務器端的程序,能夠由不一樣的語言來編寫:
Java語言 -> JSP
C#語言 -> ASP.NET
php語言 -> php
Python語言 -> Djangoweb


四、網站請求的全過程


一、用戶:輸入域名,經過域名解析(DNS)器獲得IP地址
二、向服務器發送http/https請求
三、傳輸層TCP協議,通過網絡傳輸和路由解析
四、WEB服務器接收HTTP請求
五、服務器處理請求內容,並進行必要的數據交換
六、將響應的內容發回給瀏覽器(響應)
七、瀏覽器解析HTML
八、顯示解析好的內容
正則表達式

四、框架


一、什麼是框架
框架是一個爲了解決某些開放性問題而存在的一種結構。框架提供了最基本的功能,咱們只須要在這些基本功能的基礎上構建本身的操做就能夠了。
二、框架的優勢
  一、快速開發 - 基本功能已經提供好了
  二、能夠解決大部分問題
  三、bug少,穩定性較高
三、框架的分類
  一、前端框架
處理前端內容(HTML,CSS,JS)
  二、後端框架
處理服務器程序的
Spring - Java
  三、全棧框架
包含WEB總體的解決方案,包含開發框架,運行環境
Rails (Ruby)redis


Django(Python)
四、Python的WEB框架
一、Django :重量級的Python Web 框架
二、Tornado :異步框架
三、Flask :輕量級框架
四、Webpy :輕量級框架
五、Web2py :全棧框架,webpy的增強版sql

=================================================


一、設計模式 與 框架模式


  一、設計模式
設計模式,是一套被反覆使用,多數人知曉並通過分類的代碼設計經驗的總結,是爲了解決一些通用性問題的
目的:重用代碼並保證代碼的可靠性
官方認證的設計模式有23種:單例模式,抽象工廠模式,觀察者模式 -- 《大話設計模式》
  二、框架模式
代碼的重用,框架模式是解決如何設計程序框架的代碼,在框架模式中會包含多種的設計模式
如:MVC,MTV,MVVM,ORM,... ...
  一、MVC
M :Models,模型層
在程序中主要處理數據,負責在數據庫中對數據進行存取操做(CRUD)
V :Views , 視圖層
應用程序中處理顯示的部份內容(html,jsp)
C :Controllers , 控制器層
處理用戶交互的部分,一般負責從模型中取出數據,再進行業務的處理,最後將數據給視圖,並將視圖給客戶端
  二、MTV
M :Models 模型層,功能同上
T :Templates 模板層
用於處理用戶顯示的部份內容,如:html
V :Views 視圖層
處理用戶交互部分,從模型中獲取數據,再將數據給模板,再顯示給用戶

M --- M
V --- T
C --- V

 

二、Django框架


  一、什麼是Django
  是一個開源框架,2005年發佈,採用Python語言開發的。早期Django是作新聞網站的。提供了很是強大的後臺管理系統,採用的是MTV的框架模式
  二、Django的優缺點
    一、優勢
      一、開源框架,有完美的文檔支持
      二、解決方案比較完整,內部功能也比較多
      三、提供完整的路由系統,優雅的URL解析方式
      四、自助式的後臺管理
    二、缺點
      目標:高內聚,低耦合
      耦合度偏高

 

下圖是MTV模式


下圖是MVC模式

三、Django的安裝


  一、Linux 中的安裝
  一、查看已安裝的django
    一、進入到虛擬環境中
    二、進入到python的交互模式
    三、在交互模式中輸入
      一、import django
      二、django.VERSION
  二、安裝
    一、在線安裝 - 使用 pip
    一、終端中輸入
      pip install django
    (安裝django的最高版本)

      pip install django==1.11.8

虛擬環境中不用 sudo
二、離線安裝
一、下載所須要的django包
https://www.djangoproject.com/
二、在 Linux 中解壓 django
  tar -xvf Django-1.11.8.tar.gz
三、進入到Django文件夾中
四、安裝
  python setup.py install
二、Windows 中的安裝
一、在線安裝
控制檯中
  pip3 install django==1.11.8
二、離線安裝
一、下載django安裝包
二、解壓django包
三、進入到django包中
python setup.py install


四、使用Django


  一、建立Django項目
直接使用 django-admin 去建立Django項目
  一、找到項目文件夾(自定義)
  二、使用 django-admin 指令
    django-admin startproject 項目名稱
  二、啓動Django項目
    一、進入到項目文件夾中
    二、經過 manage.py 啓動項目
一、
python manage.py runserver

./manage.py runserver
只能在本機訪問
http://localhost:8000
http://127.0.0.1:8000
二、
./manage.py runserver 0.0.0.0:8000
容許在局域網內訪問,能夠經過IP地址訪問

ex:
一、啓動服務
./manage.py runserver 0.0.0.0:8000
二、查看 虛擬機 IP地址
ifconfig
三、在windows中,打開chrome瀏覽器,經過IP地址訪問django項目

 

五、Django結構介紹


一、manage.py


  負責執行django中的各項操做的文件
  命令腳本文件
  如:
    一、啓動服務
    二、建立應用
    三、建立管理員、用戶
    ... ...

 


二、主文件夾(名稱與項目名稱相同)


  存放項目的最基礎的配置文件
  一、__init__.py
    項目初始化文件,每當服務器啓動的時候,會自動執行
    若是有自定義的初始化操做,須要放在該文件中
  二、urls.py
    項目的基礎url(路由)配置文件
    路由:去哪找執行的程序
  三、wsgi.py
    配置應用服務器的文件,暫時不用
  四、settings.py(重要)
    項目的主設置文件:應用,模板,數據庫,語言,時區,... ...
    一、BASE_DIR :項目所在的絕對路徑
    二、DEBUG :調試模式
      開發過程當中,推薦使用 True
      上線運行時,必須改成 False
    三、ALLOWED_HOSTS
      設置容許訪問本地項目的地址列表,若是不設置的話,只有本機(localhost / 127.0.0.1訪問)。推薦些 '*' ,表示任何機器都容許訪問當前項目
    四、INSTALLED_APPS
      指定已安裝的應用,若是有自定義應用的話,須要在此註冊
    五、MIDDLEWARE :註冊中間件
    六、ROOT_URLCONF :指定項目的基礎路由配置文件
    七、TEMPLATES :指定模板的信息
    八、DATABASES :指定數據庫的信息
    九、LANGUATE_CODE : 指定語言,容許修改成 zh-Hans
    十、TIME_ZONE :指定時區,建議改成 Asia/Shanghai

  六、settings的加載流程
    一、先加載global_settings
      位於:虛擬環境/lib/python3.5/site-packages/django/conf
    二、再加載項目中的settings
      注意:若是 global_settings中的內容與項目settings中的內容衝突的話,優先使用項目的settings中的內容

  七、初識 django-admin 和 manage.py

    一、終端中直接輸入 django-admin
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
runserver
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject #建立項目
test
testserver

  二、進入到項目主文件夾,輸入./manage.py


[auth]
changepassword #修改密碼
createsuperuser #建立超級用戶

[contenttypes]
remove_stale_contenttypes

[django]
check
compilemessages
createcachetable
dbshell #進入到Django數據shell交互模式
diffsettings
dumpdata
flush
inspectdb #將數據表直接導出爲Models
loaddata
makemessages
makemigrations #建立數據庫日誌文件,記錄Models的改動
migrate #將數據庫日誌文件同步到數據庫中
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp #建立應用
startproject
test
testserver

[sessions]
clearsessions

[staticfiles]
collectstatic
findstatic
runserver #啓動服務

 

八、URL的使用


  一、urls.py
    默認在主文件夾中,包含全部的地址映射。
    每當一個請求產生後,都會到urls.py中進行地址的匹配,匹配上後再找到對應的處理程序(View視圖)去執行
  二、測試
    一、項目主文件夾中,建立 views.py
    做用:包含全部定義好的視圖(處理程序)
  views.py :
    from django.http import HttpResponse

    def fun_views(request):
      return HttpResponse('Hello Django')
    二、在 urls.py 中追加
    from .views import *
    urlpatterns = [
      url(r'^admin/',admin.site.urls),
      url(r'^fun/$',fun_views),
        ]

    三、url 函數
      url函數的語法
    url(regex,views,kwargs=None,name=None)
      一、regex
      正則表達式,匹配請求的 url
      二、views
      URL處理的視圖函數,一般都是自定義的
      三、kwargs
      字典,用來向views傳參的
      四、name
      字符串,給url()起一個別名,主要在模板中配合{%url  xxx %}一塊兒使用eg: name="hello" , 模板中{%url  」hello」%}
    四、url 向 view 傳參
      一、使用正則表達式傳參
      使用正則表達式的子組傳參,使用()

      urlpatterns = [
        #訪問路徑必須是 fun
        url(r'^fun/$',fun_views),
        #訪問路徑必須是 fun
        url(r'^(fun)/$',fun_views),

        url(r'^fun/(\d+)',fun_arg1_views),
          ]
    注意:
      一、在 url() 中,一個子組()表示一個參數
      二、在views.py中,對應的處理函數要根據url()中子組的個數,相應的定義參數,定義的參數要位於 request以後

練習:
一、訪問地址:localhost:8000/18/0223/15
如何獲取 18 0223 15
二、訪問地址
localhost:8000/zh/0223
localhost:8000/jp/0223

如何獲取 zh(jp),0223
定義 url() 匹配模式 以及 views 的處理函數
二、使用url()第三個參數,字典傳參
urlpatterns = [
url(r'^showname/$',show_views,{'name':'zsf','age':'25'}),
]

views.py
def show_views(request,name,age):
  resp = HttpResponse(name+":"+age)
  return resp
注意:
一、視圖處理函數中,必須聲明參數
二、參數的名稱 和 位置 必需要與字典中的名稱和位置保持一致

 

三、Django 中的應用


一、什麼是應用
應用是網站中的一個獨立的模塊,包含獨立的顯示信息。
在項目主文件夾中通常不處理其餘的請求,主要就作初始化設置 以及 地址的分發
實際操做中,會將請求,交給不一樣的應用去處理

 

二、建立應用

  一、命令
  ./manage.py startapp 應用名稱
  ex:
  建立一個應用,名稱爲 index
  二、在 settings.py中註冊應用
  在 INSTALLED_APPS 中追加應用名稱便可
  INSTALLED_APPS = [
    'django.contrib.admin',
    ... ...,
    'index',
      ]
  三、應用的結構組成
    一、migrations 目錄
    存放數據庫日誌文件,是一個django與數據庫交互的中間文件
    二、__init__.py
      應用的初始化操做文件
    三、admin.py
      應用的後臺管理配置文件
    四、apps.py應用的屬性設置文件,不需改動
    五、models.py
      Models模型文件
    六、tests.py
      測試模塊,一般不用
    七、views.py
      定義視圖的py文件

練習:
建立應用,並進行註冊
在 day2_exer 中建立應用
一、index
二、news - 表示新聞的應用
三、sports - 表示體育的應用
四、musics - 表示音樂的應用

######

下圖是:主路由配置調用應用中的視圖

 

下圖是:主路由配置與應用的路由配置的分發關係

Django2.0 項目依賴包:

版本: Python3.6 Django2.0 依賴庫: pip install djangorestframework pip install django-filter pip install django-rest-swagger pip install djangorestframework-jwt pip install django-cors-headers pip install cryptography pip install celery pip install redis pip install PyMySQL
View Code
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息