Django入門

什么是Django

官方文檔
Django提供了一個高級的框架邑闺,用它只需要很少的幾行代碼就能完成一個WEB應用弱贼,Django是由Python寫出來的.

Django特點:

1.遵循MVC開發(fā)模式.
2.內(nèi)置進行快速web開發(fā)所需的各種組件
3.利用ORM(對象關系映射)機制來定義和數(shù)據(jù)庫,使開發(fā)人員可以構建出獨立于具體數(shù)據(jù)庫引擎的web應用
4.內(nèi)置 web Server,開發(fā)人員無需安裝就可以進行web應用的開發(fā)和測試.
5.具有靈活而強大的自定義url系統(tǒng)
6.支持多國語言
MTV設計模式
M:model數(shù)據(jù)模型
T:template模板
V:views視圖

安裝Django

pip install django==1.11.16
pip install django==1.11.16 -i 臨時指定pypi源

pip -V                            --> 查看pip的版本和來自哪個python解釋器
pip list                          --> 查看當前python解釋器中安裝的第三方包和版本號
pip uninstall django              --> 卸載
pip freeze > requirements.txt     --> 當前Python解釋器環(huán)境的第三方包名和版本號都導出到requirements.txt中
pip install -r requirements.txt   --> 遞歸的按照requirements.txt中列出來的安裝

Django請求流程圖

現(xiàn)階段Django請求流程圖.png

使用Django

創(chuàng)建項目和運行

1. 命令行
1.創(chuàng)建項目:<pr>djiango-admin startproject 項目名<pr/>
2. 啟動運行
(1) 切換到項目的根目錄下
(2) 執(zhí)行下面代碼:
python3 manage.py runserver
python3 manage.py runserver 127.0.0.1:8080
python3 manage.py runserver 8080
3. 創(chuàng)建APP
python manage.py startapp app01

2. PyCharm
1.在菜單欄點擊file選項

QQ截圖20181108151025.png

2.選擇New Project項目里的Django,右邊寫項目名和選擇python解釋器
QQ截圖20181108151551.png

QQ截圖20181108151715.png
  1. 創(chuàng)建APP
    在上圖中輸入app項目名稱
  2. 啟動運行
    (1) 先看綠色三角左邊的名字和項目名是否一致,一致的話才進行下一步
    (2) 用鼠標左鍵點一下綠色三角

配置環(huán)境

Django項目的目錄
1. mysite
-mysite
-init.py
-urls.py(函數(shù)和函數(shù)的對應關系)
-settings.py(Django項目的配置信息)
-wsgi.py(收發(fā)socket消息相關)
-manage.py(命令行入口文件)
-Template(專門用來放HTML文件的)
配置settings.py文件
1.注冊APP:在INSTALLED_APPS中注冊APP在后邊輸入:'app01.apps.App01Config',
2.MIDDLEWARE: 中間件
3.TEMPLATES: 模板的相關配置
4.DATABASES: 數(shù)據(jù)庫相關的配置:(提前創(chuàng)建一個數(shù)據(jù)庫)


      DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',  
                # 告訴Django要連接的是MySQL數(shù)據(jù)庫
                'NAME': 'day57',  # 數(shù)據(jù)庫名稱
                'HOST': '127.0.0.1',  # 數(shù)據(jù)庫的IP
                'PORT': 3306,  # 數(shù)據(jù)庫的端口
                'USER': 'root',  # 連接數(shù)據(jù)的賬號
                'PASSWORD': '123'  # 連接數(shù)據(jù)庫的密碼
                }
             }

5.STATIC_URL = '/static/' 靜態(tài)文件的別名,模板中以別名開頭

STATICFILES_DIRS = [
                              os.path.join(BASE_DIR, 'static'),
                            ]
  1. 告訴django使用pymysql的模塊鏈接MySQL數(shù)據(jù)庫
    在與setting同級的目錄下的init.py中寫代碼:
import pymysql
pymysql.install_as_MySQLdb()    

7.數(shù)據(jù)庫的遷移

python manage.py makemigrations     # 檢查 models.py 是否有變化,記錄變化
python manage.py migrate            # 將變更記錄同步到數(shù)據(jù)庫中

Django在終端的基本操作

python -m django --version                    ----> 查看Django的版本
django-admin startproject mysite            ----> 創(chuàng)建一個mysite項目
python manage.py shell                          ----> django項目環(huán)境終端
python manage.py startapp app01          ----> 創(chuàng)建應用程序
python manage.py runserver [8000]        ----> 啟動程序
python manage.py makemigrations         ----> 進行創(chuàng)建模型變化遷移
python manage.py migrate                      ----> 運行應用變化到數(shù)據(jù)庫
python manage.py syncdb                       ----> 清空數(shù)據(jù)庫(保留數(shù)據(jù)表)
python manage.py createsuperuser         ----> 創(chuàng)建管理員用戶
python manage.py changepassword username ----> 修改用戶名密碼

基礎必知必會3件套

使用的時候先導入:
from django.shortcuts import HttpResponse, render, redirect
1. HttpResponse

內(nèi)部傳入一個字符串參數(shù)矾利,返回給瀏覽器

def index(request):
    # 業(yè)務邏輯代碼
    return HttpResponse("OK")

2. render:

除request參數(shù)外還接受一個待渲染的模板文件和一個保存具體數(shù)據(jù)的字典參數(shù)。
將數(shù)據(jù)填充進模板文件馋袜,最后把結(jié)果返回給瀏覽器男旗。

  1. render(request,'index.html')
  2. render(request,'login.html'{'error_msg':error_msg})
def index(request):
    # 業(yè)務邏輯代碼
    return render(request, "index.html", {"name": "john", "hobby": ["燙頭", "泡吧"]})

3. redirect:重定向(跳轉(zhuǎn))

  1. redirect('/index/'):在同一個網(wǎng)站的不同的地址之間跳轉(zhuǎn)
  2. redirect('http://www.baidu.com'):跳轉(zhuǎn)到具體的URL
def index(request):
    # 業(yè)務邏輯代碼
    return redirect("/home/")

補充

request

  1. request.method --> 所有跟請求相關的數(shù)據(jù)都封裝到這個對象
  2. request.GET --> 請求方法的全大寫(GET/POST/...)
    request.GET['key'] --> 獲取URL中的參數(shù)(類似字典),POST請求的URL也可以帶參數(shù)
    request.GET.get('key')
  3. request.POST --> 獲取POST請求中攜帶的參數(shù)(類似字典)

form表單提交數(shù)據(jù)的三個關鍵

  1. form標簽必須要有action和method屬性
  2. form標簽中獲取用戶輸入的標簽必須要有name屬性
  3. form標簽中必須要有submit按鈕
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末欣鳖,一起剝皮案震驚了整個濱河市察皇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泽台,老刑警劉巖什荣,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異怀酷,居然都是意外死亡稻爬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門蜕依,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桅锄,“玉大人,你說我怎么就攤上這事样眠∮蚜觯” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵檐束,是天一觀的道長辫秧。 經(jīng)常有香客問我,道長被丧,這世上最難降的妖魔是什么盟戏? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任绪妹,我火速辦了婚禮,結(jié)果婚禮上抓半,老公的妹妹穿的比我還像新娘喂急。我一直安慰自己,他們只是感情好笛求,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著糕簿,像睡著了一般探入。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上懂诗,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天蜂嗽,我揣著相機與錄音,去河邊找鬼殃恒。 笑死植旧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的离唐。 我是一名探鬼主播病附,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼亥鬓!你這毒婦竟也來了完沪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嵌戈,失蹤者是張志新(化名)和其女友劉穎覆积,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體熟呛,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡宽档,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了庵朝。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吗冤。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖偿短,靈堂內(nèi)的尸體忽然破棺而出欣孤,到底是詐尸還是另有隱情,我是刑警寧澤昔逗,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布降传,位于F島的核電站,受9級特大地震影響勾怒,放射性物質(zhì)發(fā)生泄漏婆排。R本人自食惡果不足惜声旺,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望段只。 院中可真熱鬧腮猖,春花似錦、人聲如沸赞枕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炕婶。三九已至姐赡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柠掂,已是汗流浹背项滑。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涯贞,地道東北人枪狂。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像宋渔,于是被迫代替她去往敵國和親州疾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容