一、做用
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
一、什麼是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 :表示用戶能夠瀏覽的網頁(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
是一個開源框架,2005年發佈,採用Python語言開發的。早期Django是作新聞網站的。提供了很是強大的後臺管理系統,採用的是MTV的框架模式
二、Django的優缺點
一、優勢
一、開源框架,有完美的文檔支持
二、解決方案比較完整,內部功能也比較多
三、提供完整的路由系統,優雅的URL解析方式
四、自助式的後臺管理
二、缺點
目標:高內聚,低耦合
耦合度偏高
下圖是MTV模式
下圖是MVC模式
一、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-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中的各項操做的文件
命令腳本文件
如:
一、啓動服務
二、建立應用
三、建立管理員、用戶
... ...
存放項目的最基礎的配置文件
一、__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
[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 #啓動服務
一、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
注意:
一、視圖處理函數中,必須聲明參數
二、參數的名稱 和 位置 必需要與字典中的名稱和位置保持一致
一、什麼是應用
應用是網站中的一個獨立的模塊,包含獨立的顯示信息。
在項目主文件夾中通常不處理其餘的請求,主要就作初始化設置 以及 地址的分發
實際操做中,會將請求,交給不一樣的應用去處理
一、命令
./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