初識(shí)Django

1.簡(jiǎn)介

Django是一個(gè)開放源代碼的web框架,MVC開發(fā)模式.(在Django里稱之為MTV).

2.mvc和mtv

兩者的開發(fā)思路都是基本類似的,只是叫法有點(diǎn)區(qū)別.

MVC
  • M : model--模型,負(fù)責(zé)操縱數(shù)據(jù)庫(kù),封裝數(shù)據(jù)
  • V : view--視圖,負(fù)責(zé)在前端將取到的數(shù)據(jù)展示給用戶
  • C : controllor--控制器, 負(fù)責(zé)處理系統(tǒng)的業(yè)務(wù)邏輯
MTV
  • M : model--模型, 也是操作數(shù)據(jù)
  • T : template--視圖(模板), 負(fù)責(zé)前端頁(yè)面的渲染,展示給用戶(類似mvc的v)
  • V : view--控制器,處理新的業(yè)務(wù)邏輯(類mvc的C)

3.使用Django的準(zhǔn)備工作

(1)在cmd中安裝virtualenv,

pip install virtualenv

(2)創(chuàng)建一個(gè)env文件夾,作為存放環(huán)境的文件夾.

(3)在env文件夾里創(chuàng)建一個(gè)虛擬環(huán)境

virtualenv -p [python安裝路徑]\python.exe --no-site-packages [新的文件夾名]

(4)進(jìn)入剛創(chuàng)建好的虛擬環(huán)境的文件夾里的Scripts文件夾下

(5)在此文件夾下執(zhí)行下面語(yǔ)句,執(zhí)行后在cmd命令行前面會(huì)多出一個(gè) (xxx) 的字樣,

avtivate

(6)再安裝django1.11

pip install django == 1.11

(7)進(jìn)入(或者創(chuàng)建)工程所在目錄(workspace)

(8)在目錄下通過cmd創(chuàng)建一個(gè)空的django項(xiàng)目:

django-admin startproject [工程名]

4.Django的初次使用

(1)使用以上命令在cmd中創(chuàng)建一個(gè)新的工程, 在pycharm中打開所示的目錄結(jié)構(gòu)
(2)在IDE的setting里面給工程手動(dòng)添加一個(gè)剛才創(chuàng)建好的虛擬環(huán)境,(由于使用的是上課時(shí)使用過的環(huán)境預(yù)裝了pymysql模塊)

(3)打開終端,在終端里輸入指令:

python manage.py

查看各種指令

(djenv5) F:\Pythonworkspace\Unit3Django\day01_test>python manage.py

Type 'manage.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

[auth]
    changepassword
    createsuperuser  //創(chuàng)建一個(gè)超級(jí)用戶(登錄和管理后臺(tái)用)

[contenttypes]
    remove_stale_contenttypes

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations //執(zhí)行這個(gè)命令,生成數(shù)據(jù)庫(kù)遷移相關(guān)的中間文件
    migrate //真正的執(zhí)行數(shù)據(jù)庫(kù)遷移
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

[sessions]
    clearsessions

[staticfiles]
    collectstatic
    findstatic
    runserver //運(yùn)行服務(wù)器


(4)使用以下指令將項(xiàng)目部署到web上,其中ip為本機(jī)的時(shí)候可以省略,端口也可以省略,省略的時(shí)候默認(rèn)為8000端口

python manage.py runserver [ip]:[port]

(5)成功部署服務(wù)后,打開瀏覽器輸入一下地址,會(huì)訪問到如下的網(wǎng)頁(yè),證明一個(gè)正式的django項(xiàng)目啟動(dòng)了!

127.0.0.1:8000

5.Django中的幾個(gè)簡(jiǎn)單的配置

此處以添加一個(gè)后臺(tái)管理員為例

(1)如果要想連接到自己的mysql數(shù)據(jù)庫(kù),則要在setting.py中修改和添加如下內(nèi)容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': 3306
    }
}

(2)在_init_.py中添加mysql的連接驅(qū)動(dòng),在python2.x中不需要這么做,系統(tǒng)會(huì)自動(dòng)連接,但是在python3.x中要手動(dòng)添加驅(qū)動(dòng)才能連接數(shù)據(jù)庫(kù)!

import pymysql

pymysql.install_as_MySQLdb()

(3)如果要將前端頁(yè)面顯示的內(nèi)容顯示為中文,在setting.py的倒數(shù)某一行內(nèi)中修改設(shè)置:

LANGUAGE_CODE = 'zh-hans'

(4)在數(shù)據(jù)路連接配置好以后,再自己通過Navicat建好數(shù)據(jù)庫(kù)就可以在終端使用migrate命令進(jìn)行數(shù)據(jù)庫(kù)遷移了:

python manage.py migrate

(5)在一連串的ok結(jié)束后,就表示遷移成功,,用Navicat查看數(shù)據(jù)庫(kù),會(huì)發(fā)現(xiàn)多了很多表


圖片.png

(6)現(xiàn)在在終端創(chuàng)建一個(gè)超級(jí)管理用戶:

python manage.py createsuperuser



(7)打開127.0.0.1:8000/admin來到如下頁(yè)面



(8)使用剛剛創(chuàng)建的超級(jí)管理用戶登錄,就來到了后臺(tái)

6.關(guān)于模型(model)

(1)準(zhǔn)備工作:生成一個(gè)app
在創(chuàng)建模型前先在終端生成一個(gè)名為''app''的app(名字可以隨便起)

python manage.py startapp app

然后在工程下會(huì)生成一個(gè)app的目錄結(jié)構(gòu)



(2)創(chuàng)建模型
在app\models.py里創(chuàng)建一個(gè)student模型,

from django.db import models

# Create your models here.

#以下為添加的代碼
class Student(models.Model):
    #這個(gè)模型擁有s_name和s_age兩個(gè)字段
    s_name = models.CharField(max_length=10, unique=True)
    s_age = models.IntegerField(default=16)
    #為這個(gè)模型創(chuàng)建一張表
    class Meta:
        db_table = 'student'

(3)為了使模型中的數(shù)據(jù)可以在前端展示,在app\admin.py中加一些操作

from django.contrib import admin

# Register your models here.

#以下為添加的代碼
from app.models import Student

admin.site.register(Student)

(4)這樣我們就可以在網(wǎng)頁(yè)后臺(tái)對(duì)student這個(gè)模型進(jìn)行一些curd操作



(5)當(dāng)然,這樣存在一個(gè)問題,就是系統(tǒng)對(duì)student這張表的數(shù)據(jù)顯得不夠直觀,這樣我們可以對(duì)這個(gè)模型的展示效果進(jìn)行修整.還是在app\admin.py進(jìn)行操作

from django.contrib import admin

# Register your models here.

#以下為添加的代碼:
from app.models import Student

class StudentAdmin(admin.ModelAdmin):
    list_display = ['id', 's_name', 's_age']  #選擇展示的字段
    search_fields = ['s_age']  #設(shè)置一個(gè)按照s_age這個(gè)字段的搜索框
    list_filter = ['s_age']  #設(shè)置一個(gè)過濾器(按照里面的條件進(jìn)行篩選)

admin.site.register(Student, StudentAdmin)

效果如下:用這樣的方式來展示出student這個(gè)模型對(duì)應(yīng)的數(shù)據(jù),更加清晰明朗


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 安裝 pip install Django 如果環(huán)境中存在多個(gè)python版本時(shí)(如同時(shí)安裝2.*和3.*), 2...
    Andrew玩Android閱讀 216評(píng)論 0 1
  • Web框架之Django: (1)簡(jiǎn)介: Django是一個(gè)由Python寫成開源的重量級(jí)Web應(yīng)用框架,采用MT...
    老肖閱讀 3,160評(píng)論 0 18
  • (一)、啟動(dòng)服務(wù)器 (二)、創(chuàng)建數(shù)據(jù)庫(kù)表 或 更改數(shù)據(jù)庫(kù)表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星閱讀 5,940評(píng)論 0 17
  • 切換到創(chuàng)建項(xiàng)目的目錄 cd C:\Users\admin\Desktop\DjangoProject創(chuàng)建名為pr...
    在努力中閱讀 3,525評(píng)論 2 3
  • 鴨子和水 鳥兒和天空 我和這個(gè)世界 有人用酒 有人用孤獨(dú) 有人用忙碌 有人用欲望 空虛 是這個(gè)世界的空虛 寂寞 是...
    居弆閱讀 167評(píng)論 1 1

友情鏈接更多精彩內(nèi)容