Django是一個開放源代碼的Web應用框架,由Python寫成。
Django是一個基於MVT構造的框架:模型(Model)、模板(Template)和視圖(views)。
核心:解耦
目的:高內聚,低耦合
模型(Model),即數據存取層:處理與數據相關的所有事務: 如何存取、如何驗證有效性、包含哪些行爲以及數據之間的關係等。
模板(Template),即業務邏輯層:處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。
視圖(View),即表現層:存取模型及調取恰當模板的相關邏輯。模型與模板的橋樑。
框架把控制層給封裝了,無非與數據交互這層都是數據庫表的讀,寫,刪除,更新的操作。在寫程序的時候,只要調用相應的方法就行了,感覺很方便。程序員把控制層東西交給Django自動完成了。 只需要編寫非常少的代碼完成很多的事情。
下面我們在Linux裏,來使用pycharm和mysql數據庫,來進行一次簡單的數據庫交互。
1.首先打開終端創建一個虛擬環境(虛擬環境的好處在於可以隨意玩,並且可以只搭建自己用得到的部分)
創建一個python3虛擬環境語句:
(mkvirtualenv -p python3 虛擬環境的名字 )
mkvirtualenv -p python3 waterDB_django
'''
#退出虛擬環境命令:deactivate
#查看虛擬環境: workon
#開啓虛擬環境命令: workon waterDB_django
#刪除虛擬環境: rmvirtualenv 虛擬環境的名字
'''
在虛擬環境裏安裝Django: pip install django==1.8.4
2.創建項目
創建項目的語句(最好在虛擬環境裏安裝):
django-admin startproject watercar
#watercar是項目名字
#下列是生成項目後自動配置成的:
# manage.py :項目管理文件,用來管理項目
# watercar :項目同名文件夾
# ├── __init__.py :表示我們這個文件可以被使用
# ├── settings.py :配置文件(數據庫,郵箱等配置)
# ├── urls.py :項目的所有地址配置
# └── wsgi.py :就是我們Django 小型服務器入口
3.創建模塊:
在(waterDB_django) python@ubuntu:~/Desktop/watercar$ 裏創建
#(waterDB_django)是加載了創建的虛擬環境。
#python@ubuntu:~/Desktop/watercar$ 是進入項目裏面
創建模塊語句:python manage.py startapp user
#user是模塊名字
接下來在pycharm裏打開watercar,在同名文件裏的setting裏在INSTALLED_APPS裏添加一句:['user']
在pycharm裏添完user後,模塊與項目就產生了關聯
可以運行服務器: python manage.py runserver (+端口名字)
打開地址,然後網頁顯示:it is worked
#端口名字不寫的話,默認爲端口:8000
4.連接數據庫:
在pycharm裏的項目同名文件夾下的setting裏:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'waterDB', #數據庫名字,必須先在MySQL裏新建一個waterDB數據庫
'USER':'root', #權限
'PASSWORD':'mysql', #密碼
'PORT':3306, #默認3306端口
'HOST':'localhost' #本地機
}
}
5.用pycharm控制數據庫-----建表:
在模塊user的model裏面:
class UserInfo(models.Model):
user_name = models.CharField(max_length=20)
password = models.CharField(max_length=20)
email = models.CharField(max_length=20)
phone = models.IntegerField()
#這個時候數據庫裏表還沒有生成,因爲我們還沒有把表遷移進去
6.安裝pymysql 模塊,並且在項目的同名文件夾下的————init.py文件下添加語句:
import pymysql
pymysql.install_as_MySQLdb()
7.遷移(建表):
生成遷移文件:
python manage.py makemigrations
執行遷移文件:
python manage.py migrate
這個時候把表遷移進去了,可以在終端打開MySQL數據庫查看
#orm查詢語句:
# 1查詢所有
# UserInfo.objects.all()
# 2查詢指定對象
# obj1 = UserInfo.objects.get(id=1)
# 3查詢指定字段
# obj1 = user_name
# 4修改指定字段的值
# obj1.password = 54321
# 5查詢老張所擁有的地址(關聯):
# obj1 = UserInfo.objects.get(id=2)
# obj1.useraddress_set.all()
8.進入Django自帶的服務器:
在終端(waterDB_django) python@ubuntu:~/Desktop/watercar$ :
先創建超級管理員:
python manage.py createsuperuser;
#name=用戶名 #用戶名要記得,很重要
#password=密碼 #密碼要記得,很重要
再運行服務器:
python manage.py runserver;
#運行服務器
然後在網頁上輸入它生成的地址,輸入用戶名和密碼就進去了:
例如:http://127.0.0.1:8000/admin
9.配置Django後臺更符合我們使用:
界面使用中文,在項目同名文件的setting下修改:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
註冊模塊到admin:
在模塊user的admin裏:
from user.models import UserInfo
class UserInfoAdmin(admin.ModelAdmin):
list_display = ['id','user_name','password','email','phone']
admin.site.register(UserInfo,UserInfoAdmin)
使用表userinfo時展示其名字:
在模塊user的model文件,裏面的userinfo類裏,加一句:
def __str__(self):
return self.user_name
10.使用urls:
10.1首先我們要把user的urls註冊到項目的同名文件的urls.py文件裏:
在urls裏的urlpatterns裏面添加:
url(r'^',include('user.urls')) #就是關聯一下路徑,在模塊user裏的urls文件,此時文件還沒有創建,下面就來創建它
10.2創建user的urls.py文件:
在urls裏面寫上:
from django.conf.urls import include, url
from user import views
urlpatterns = [
# 127.0.0.1/index
url(r'^index$',views.index),
]
10.3根據url地址請求,創建對應的視圖函數,注意點:必須有一個參數來接收請求,必須有拋出一個返回結果
在模塊user的views裏面寫入:
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('歡迎')
然後在網頁上輸入http://127.0.0.1:8000/index 就可以看到‘歡迎’了