【創建虛擬環境】
-- 安裝
-- sudo pip install virtualenv # 虛擬環境的安裝
-- sudo pip install virtualenvwrapper # 安裝虛擬環境的擴展包
-- 編輯家目錄下面的 .bashrc 檔案,末尾添加
-- gedit .bashrc # 家目錄下執行
-- export WORKON_HOME=$HOME/virtualenvs #末尾添加這兩行
source /usr/local/bin/.vitualenvwrapper.sh
-- source .bashrc # 執行一下

命令:mkvirtualenv 名字 -p /usr/bin/python3 # 配置環境
- 退出虛擬環境 deactivate
- 進入虛擬環境 workon 虛擬環境名稱
- 洗掉虛擬環境 rmvitualenv 虛擬環境名稱
進入環境后:pip freeze #顯示環境中的應用
安裝Django:pip install django==1.11.7
pip list #顯示環境中所有的包和版本
【創建Django專案】
django-admin startproject HelloDjango #創建一個工程 HelloDjango

wsgi.py:web網關服務介面
為專案創建應用:python manage.py startapp App #名為App

啟動服務:python manage.py runserver
runserver:內置的開發者服務器
紅字報錯:有檔案沒有進行遷移

pycharm打開django工程:打開manage.py的上一級目錄
配置專案的環境:setting -> project int -> + Vir En -> Exist 
【測驗環境 => 演示環境 => 生產環境】
【檔案內容setting.py:】
- 專案所在的目錄
- 密鑰,生產環境:已上線,線上環境
- 除錯開關,不要在生產環境中打開
- 允許主機,所有人都能訪問 ["*"]
- 內置app
- 中間件
- 跟路由
- 模板
- 呼叫WSGI應用,部署時使用?
- 資料庫,SQLIte,輕量級嵌入式資料庫,Android,IOS,WP手機中
- 驗證,密碼驗證器
- 語言編碼,中文 ''zh-hans"
- 統一協調時間,中國 "Asia/shanghai"
【資料庫遷移】



執行遷移:python manage.py migrate

【路由檔案urls.py:】

【視圖函式views.py】


【Templates 模板配置】
第一種在應用中寫T


顯示T中index網頁
加個路由

render()直接渲染

"index.html" 輸入不智能提示,設定

settings中注冊應用

訪問(ip+埠):http://192.168.124.128:8000/index/
第二種模板T使用(開發中使用該方法,模板可以繼承,復用)
templates創建在工程目錄下,并在其中創建home.html


【拒絕上帝檔案/類(什么都能做,檔案多)】
-- 專案如果邏輯過于復雜,可以進行拆分
-- 拆分為多個App
-- 然后繼續拆分路由器 urls
-- 在App(即Two)中創建自己的urls
-- urlpatterns 路由規則串列
-- 在根 urls 中進行子路由的包含
-- 子路由使用
-- 根路由規則 + 子路由規則
-- r'two/' + r'^index/' => http://192.168.124.128:8000/two/index/
python manage.py startapp Two #創建一類似App應用
創建的東西使用前需注冊

【分發路由:Two中創建urls.py】


將Two中的路由告訴專案中的根路由

訪問:http://192.168.124.128:8000/two/index/

【models 使用了ORM技術(Object Rekational Mapping 物件關系映射)】
-- 將業務邏輯和SQL進行了解耦合
-- 直接對資料庫進行操作,不需要用資料庫語言,相當于翻譯
-- object.save()
-- object.delete()
-- 關系型資料庫
-- 先定義資料庫 DDL
-- django 中通過 models 定義實作 資料庫表的定義
從模型models => 變成資料庫 Student表

然后進行遷移
python manage.py makemigrations #1.生成遷移檔案

python manage.py migrate #2.執行遷移

直接插入資料

代碼插入資料
urls

views

開啟服務:python manage.py runserver 9000#運行在本機地址的9000埠
瀏覽器:ip:9000/two/addstudent/
顯示插入的學生

ORM抽象出來的操作入口
將學生資料拿出來

瀏覽器:ip:9000/two/getstudents/

將資料顯示在網頁上



快捷鍵:
-- control + p 引數提示
-- shift + f6 重命名,重構,參考該名處同時修改
傳值,映射模板,對應
模板語法


更新學生資訊
url(r'^updatestudent/', views.update_student),
【更新洗掉基于查詢】

洗掉學生資訊
url(r'^deletestudent/', views.delete_student),

-- 資料操作
-- 增刪改查
-- 存盤
-- save()
-- 查詢
-- 查所有 objects.all()
-- 查單個 objes.get(pk=xx) #主鍵存在=>更新,不存在=>創建
-- 更新
-- 基于查詢的
-- 查詢的物件,修改屬性,然后save()
-- 洗掉
-- 基于查詢的
-- 呼叫 delete()
DataBase模塊,可以直接連接操作資料庫Sqlite和MySQL
三種MySQL連接驅動:
-- 連接mysql驅動
-- python2,3都能直接使用
-- 缺點:對mysql安裝有要求,必須指定位置存在組態檔
-- python-mysql
-- python2 支持
-- python3 不支持
-- pymysql
-- python2,python3都支持
-- 它還可以偽裝成前面的兩個庫
-- 安裝:pi
-- 偽裝
【換MySQL資料庫】

連接MySQL,創庫GP1HelloDjango
mysql -u root -p 111111
mysql> create database GP1HelloDjango charset=utf8;
退出資料庫


執行遷移:python manage.py migrate
報錯:資料庫驅動錯誤
操作:安裝驅動pymysql =》進行偽裝
報錯:1049, "Unknown database
操作:檢查各個環節資料庫命名,MySQL初建時,settings.py,pycharm添加
【在views中加載渲染模板原理】

將 模板語言 轉化為 HTML語言
python manage.py startapp Three
注冊到系統的setting中

Three =》urls =》添加到根路由 =》創建Three的模板檔案夾和模板
=》模板經歷程序(加載loader =》渲染render)

【SHELL】

用shell進行除錯

-- django shell
-- 集成python環境的shell終端
-- 通常在終端中做一些除錯作業
-- 如何看待bug
-- 看日志
-- 先看第一條,再看最后一條
-- 梳理思路
-- 程式在哪個位置和預期出現偏差
表關系
-- 1:1
-- 外鍵添加唯一約束,使之一對一
-- 1:M
-- 外鍵可以多個,通常做多對一
-- M:N
-- 產生額外一張關系表,在其中關聯兩張表的主鍵
資料集連

遷移,映射到庫中,生成遷移檔案,執行遷移

在班級和學生表中添加資訊

1.獲取學生的班級

views.py

2.找到班級的所有學生

顯示在網頁

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/89968.html
標籤:Python
