Django學習筆記——背景瞭解及環境搭建
背景瞭解
Django是什麼
- Django是一個開放原始碼的Web應用框架,由Python寫成。採用了MVC的框架模式,即模型M,檢視V和控制器C。
特點
- 在Django中,控制器接受使用者輸入的部分由框架自行處理,所以 Django 裡更關注的是模型(Model)、模板(Template)和檢視(Views),稱為MVT模式。
- Django的主要目的是簡便、快速的開發資料庫驅動,它強調程式碼複用。
- 物件關係對映 (ORM,object-relational mapping):以Python類形式定義你的資料模型,ORM將模型與關係資料庫連線起來
- URL 分派:使用正則表示式匹配URL,你可以設計任意的URL,沒有框架的特定限定。像你喜歡的一樣靈活。
- 模版系統:使用Django強大而可擴充套件的模板語言,可以分隔設計、內容和Python程式碼。並且具有可繼承性。
- 表單處理:你可以方便的生成各種表單模型,實現表單的有效性檢驗。可以方便的從你定義的模型例項生成相應的表單。
- Cache系統:可以掛在記憶體緩衝或其它的框架實現超級緩衝 -- 實現你所需要的粒度。
- 會話(session),使用者登入與許可權檢查,快速開發使用者會話功能。
- 國際化:內建國際化系統,方便開發出多種語言的網站。
- 自動化的管理介面:不需要你花大量的工作來建立人員管理和更新內容。Django自帶一 個ADMIN site,類似於內容管理系統
MVC
- 核心: 分層,解耦。
- 目的: 提高程式的擴充套件性和可維護性。
- Model(模型)表示應用程式核心(比如資料庫記錄列表)。
- View(檢視)顯示資料(資料庫記錄)。
- Controller(控制器)處理輸入(寫入資料庫記錄)。
MVT
- 核心:解耦
- 目的:高內聚 低耦合
- M全拼為Model,與MVC中的M功能相同,負責和資料庫互動,進行資料處理。
- V全拼為View,與MVC中的C功能相同,接收請求,進行業務處理,返回應答。
- T全拼為Template,與MVC中的V功能相同,負責封裝構造要返回的html。
環境搭建
基礎環境:ubuntu16.04 + pycharm 2018.2.4 + Firefox
-
開啟客戶端命令列
1. 安裝相關
1)安裝虛擬環境
pip install virtualenv
pip install virtualenvwrapper
2)安裝django1.8.4
pip install django==1.8.4
3)安裝pymysql
pip install pymysql
4)安裝sqliteman資料庫----用mysql則不需要
sudo apt-get install sqliteman
2.虛擬環境相關
1)建立
mkvirtualenv 虛擬環境的名字
2)刪除
rmvirtualenv 虛擬環境的名字
3)進入/切換
workon 虛擬環境的名字
4)退出
deactivate
5)檢視已安裝的包
pip list
pip freeze
6)檢視專案環境
tree
3.專案相關
1)建立專案
django-admin startproject 專案名
2)進入專案目錄建立應用APP
python manage.py startapp 應用名
-
開啟pycharm設定專案相關
1.進入setting
1)修改databases—使用mysql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':"project",
'HOST':"127.0.0.1",
"PORT":'3306',
"USER":'root',
"PASSWORD":'mysql'
}
}
2)修改__init__
import pymysql
pymysql.install_as_MySQLdb()
- 開啟命令列開啟服務
python manage.py runserver
- 開啟web進入127.0.0.1:8000測試
具體操作
1.環境搭建完畢
2.建立資料庫
——客戶端命令列
——進入資料庫環境下
create database 資料庫名 charset=utf8;
3.為資料庫建立模型
——進入model
from django.db import models
class BookInfo(models.Model):
#——字元——
btitle = models.CharField(max_length=20)
#——時間——
bpub_date = models.DateField()
#——整型——
reader = models.Integerfield(max_length=50,default=0)
#——浮點——
num = models.FloatField()
#——精確浮點——(總長8,小數位3)
price=models.DecimalField(max_digits=8,decimal_places=3)
#——外來鍵——
user = models.ForeignKey('UserInfo')
#——列舉——
choice=(
(1,'男人'),
(2,'女人'),
(3,'其他')
)
lover=models.IntegerField(choices=choice)
4.註冊APP
——進入setting
——找到APPS
——在末尾新增新建立的app
5.遷移
——客戶端命令列
——進入django環境
——找到當前專案
——生成遷移檔案
python manage.py makemigrations
——執行遷移命令
python manage.py migrate
6.檢查
——客戶端命令列
——進入mysql環境
——檢查遷移結果即是否生成表