一:創建及運行虛擬環境
步驟說明
1. 使用命令行在Ubuntu系統下創建一個虛擬環境如創建一個叫py3的虛擬環境 irtualenv py3
2.進入創建好的虛擬環境 workon py3
3.在虛擬環境中安裝Django,
代碼說明
mkvirtualenv 創建虛擬環境
rmvirtualenv 刪除虛擬環境
virtual 虛擬機
deactivate 退出虛擬環境
workon 進入虛擬環境
pip install django==1.8.2 安裝版本爲1.8.2的Django
pip list 當前虛擬庫裏面所有的包
pip freeze 看額外的包和版本
django-admin startproject 項目名 創建一個項目
python manage.py startapp 名字 創建自己的應用文件
二:創建Django項目
步驟簡述
1. 先創建一個Django項目,如在桌面創建一個`test`的項目
2. 將創建好的項目在Pychare中配置好操作環境如:`/home/python/.virtualenvs/py3/bin/python3.5`
3. 在test1下創建一個應用如:`booktest`
4. 在創建好的`booktest`的`models.py`模塊裏面寫一個模型類,類必須繼承`models.Model`
5. 將創建好的應用`booktest`註冊到settings.py文件中的`INSTLLED_APPS`中
6. 生成遷移文件:即根據創建的模型類生成相應的sql語句
7. 執行遷移:即執行sql語句生成數據表
8. 可進入`python shell` 練習
9. 命令行中運行該項目,默認端口爲8000
10.打開瀏覽器,輸入網址“127.0.0.1:8000”可以打開默認頁面,對該站點的詳細操作將在下一片文檔詳細說明,
11. 如果修改文件不需要重啓服務器,如果增刪文件需要重啓服務器
第一步創建好的目錄說明:
manage.py:一個命令行工具,可以使你用多種方式對Django項目進行交互
內層的目錄:項目的真正的Python包
_init _.py:一個空文件,它告訴Python這個目錄應該被看做一個Python包
settings.py:項目的配置
urls.py:項目的URL聲明
wsgi.py:項目與WSGI兼容的Web服務器入口
- 上面1~8步所用到的命令
python manage.py runserver ip:port 運行django服務
django-admin startproject test1 創建項目
python manage.py startapp booktest 創建應用
python manage.py makemigrations 生成遷移文件
python manage.py migrate 執行遷移
python manage.py runserver 運行django服務
python manage.py shell 進入shell
- 模型類代碼
from django.db import models
class BookInfo(models.Model):
"""創建一個圖書類"""
btitle = models.CharField(max_length=20)
bpub_date = models.DateTimeField()
def _ _str_ _(self):
return "%d" % self.pk
class HeroInfo(models.Model):
"""創建一個英雄類"""
hname = models.CharField(max_length=20)
hgender = models.BooleanField()
hcontent = models.CharField(max_length=100)
hBook = models.ForeignKey('BookInfo')
def _ _str_ _(self):
return "%d" % self.pk
三:使用shell操作Django
步驟說明
1. 使用命令進入shell
2. 引入需要的包和模塊
3. 創建對應的類的對象,如 b = BookInfo()
4. 爲該對象添加實例屬性,
5. 爲了Django能成功的將內容映射到字段上面(即模型類的類屬性),添加的實例屬性的名字必須和類屬性的名字一樣,這樣才能映射成功.
6. 保存該實例對象的屬性 b.save()
7. 查看,修改,刪除相關信息>>可以查看所有,也可以根據id查看,查看所有的時候,返回的是一個對象的列表,可以對該列表進行操作.
8. 創建另一個關聯了BookInfo的HeroInfo類的實例對象.
9. HeroInfo的外鍵必須引用一個BookInfo類創建好的一保存的對象,即有一個HeroInfo存在,必須要有一個BookInfo對象,提供了創建關聯的數據:
命令說明
python manage.py shell 進入shell
from booktest.models import * 導入模型類中的所有類
from datetime import *
導入時間模塊,書籍添加時間屬性的時候使用
b = BookInfo() 創建實例對象
b.btitle="射鵰英雄傳" 添加書名
b.bpub_date=datetime(year=1990,month=1,day=10) 添加時間
b.save() 保存對象屬性
BookInfo.objects.all() 返回對象列表
b=BookInfo.objects.get(pk=1) 根據id查找
查看id=1的圖書的屬性
b
b.id
b.btitle
修改圖書信息
b.btitle="天龍八部"
b.save()
刪除圖書信息
b.delete()
關聯對象
h=HeroInfo()
h.htitle=u'郭靖'
h.hgender=True
h.hcontent=u'降龍十八掌'
h.hBook=b //這裏引入的是外鍵屬性,外鍵屬性必須引用關聯的一個實例對象
h.save()