Python Web - Django開發(fā)與項目實戰(zhàn)

1. 入門Django框架

1.1 介紹

  1. 內容
    環(huán)境搭建及版本選擇
    URL及視圖函數(shù)
    模板、ORM、表單
    后臺管理、命令行工具、安全及運維

1.2 初識Django

Django介紹

  1. Django發(fā)展歷史
    world online的三位工程師使用Python開發(fā)了Django。
    Django根據(jù)比利時的爵士音樂家Django Reinhardt命名。
    2005年開源,2008年發(fā)布1.0版本。
    LTS(Long Term Support)支持。
  2. Django介紹
    開源免費的Python高級web框架,內置電池,用于快速開發(fā)可靠、安全、可擴展的web應用。
    https://docs.djangoproject.com/en/1.11/
  3. MVT模型
    模型(Model) ←→ 視圖(View) ←→ 模板(Template)
  4. 網(wǎng)站開發(fā)流程
    (1) 選擇合適的版本
    (2) 安裝及配置
    (3) 生成項目結構
    (4) 內容開發(fā)
    (5) 迭代、上線、維護
  5. 版本兼容情況
Django版本 Python版本
1.11 2.7、3.4、3.5、3.63.7(added in 1.11.17)
2.0 3.4、3.53.6、3.7
2.1、2.2 3.5、3.6、3.7

image.png

當前選擇:Django V1.11.*

  1. 環(huán)境參數(shù)
    Windows 10、Xampp/Navicat for MySQL、Python 3.6+Django 1.11.*、Flask 1.0.*
  2. 安裝Django 1.11.*
    (1) 安裝
    pip3 install -i https://pypi.doubanio.com/simple django==1.11.28
    其中,-i表示指定源。
    (2) 檢測版本
?  ~ python3
Python 3.7.1 (default, Nov 28 2018, 11:55:14) 
[Clang 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.__version__
'1.11.28'
>>> quit()

初始化項目

  1. 創(chuàng)建虛擬環(huán)境
    django1.11虛擬環(huán)境
?  django mkdir django1.11 # 創(chuàng)建虛擬環(huán)境目錄
?  django cd django1.11  # 進入目錄
?  django1.11 pipenv --python 3.7.1 # 初始化當前虛擬環(huán)境的Python版本
? Successfully created virtual environment!
Virtualenv location: /Users/nimengwei/Envs/django1.11-yxhb7L3z
?  django1.11 pipenv shell # 激活虛擬環(huán)境
(django1.11) ?  django1.11 pip install django==1.11.28 # 安裝django1.11.28
Successfully installed django-1.11.28 pytz-2019.3
(django1.11) ?  django1.11 python3 
>>> django.__version__
'1.11.28'
>>> quit() # 退出Python
(django1.11) ?  django1.11 exit # 退出虛擬環(huán)境
?  django1.11 

django3.0虛擬環(huán)境

?  django mkdir django3.0 # 創(chuàng)建虛擬環(huán)境目錄
?  django cd django3.0 # 進入目錄
?  django3.0 pipenv --python 3.7.1 # 初始化當前虛擬環(huán)境的Python版本
? Successfully created virtual environment! 
Virtualenv location: /Users/nimengwei/Envs/django3.0-T5e2e5tT
?  django3.0 pipenv shell # 激活虛擬環(huán)境
(django3.0) ?  django3.0 pip install django # 安裝django最新穩(wěn)定版
(django3.0) ?  django3.0 python3
>>> import django
>>> django.__version__
'3.0.4'
>>> quit() # 退出Python
(django3.0) ?  django3.0 exit # 退出虛擬環(huán)境
?  django3.0 
  1. 命令行創(chuàng)建django項目
    (1) 命令介紹
    生成項目模板 django-admin.py startproject 項目名稱
    創(chuàng)建模塊 python manage.py startapp 模塊名
    啟動服務器 python manage.py runserver
    (2) 命令行演示
?  ~ cd /Users/nimengwei/Code/mycode/python/django/django1.11 # 進入虛擬環(huán)境目錄
?  django1.11 pipenv shell # 激活虛擬環(huán)境
(django1.11) ?  django1.11 cd ../../project #進入項目所在文件夾
(django1.11) ?  project django-admin.py startproject django_project  # 生成項目模板
(django1.11) ?  project cd django_project
(django1.11) ?  django_project python manage.py startapp accounts
(django1.11) ?  django_project python manage.py startapp course
(django1.11) ?  django_project python manage.py runserver # 啟動服務器
March 21, 2020 - 12:22:44
Django version 1.11.28, using settings 'django_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

注意:激活虛擬環(huán)境之后,可以在任意路徑創(chuàng)建項目。

  1. 項目模板生成的目錄結構
    |--django_project 項目目錄
    | |--__init__.py 包的入口文件
    | |--settings.py 項目配置文件
    | |--urls.py url訪問地址配置文件
    | |--wsgi.py uwsgi配置
    |--db.sqlite3 sqlite數(shù)據(jù)庫
    |--manage.py 命令管理工具
    |--accounts accounts模塊
    |--course course模塊
  2. Pycharm創(chuàng)建django項目
    (1) New Project新建項目
    新建項目

    (2) 添加Pipenv虛擬環(huán)境
    虛擬環(huán)境

    (3)運行項目
    運行項目

    (4) 修改配置
    修改配置

URL配置及參數(shù)傳遞

  1. RUL協(xié)議
    http - 超文本傳輸協(xié)議資源
    https - 用安全套接字層傳送的超文本傳輸協(xié)議
    ftp - 文件傳輸協(xié)議
    注釋:http默認端口為80https 默認端口為443。
  2. HTTP狀態(tài)碼
    2xx- 請求成功
    3xx - 重定向
    4xx - 請求錯誤
    5xx - 服務器錯誤
  3. URL的正則匹配
    (1) 參數(shù)傳遞
    urls.py
url(r'^article/(?P<year>[0-9]{4})/$', views.article)

views.py

def article(request, year):
    return HttpResponse('article: ' + year)

(2) URL的嵌套
命令行創(chuàng)建模塊

?  django_ide git:(master) ? cd /Users/nimengwei/Code/mycode/python/django/django1.11
?  django1.11 pipenv shell
Launching subshell in virtual environment...
 . /Users/nimengwei/Envs/django1.11-yxhb7L3z/bin/activate                                                                                           
nimengwei@nimengweideMacBook-Pro django1.11 %  . /Users/nimengwei/Envs/django1.11-yxhb7L3z/bin/activate
(django1.11) nimengwei@nimengweideMacBook-Pro django1.11 % cd /Users/nimengwei/Code/mycode/python/Project/django_ide
(django1.11) nimengwei@nimengweideMacBook-Pro django_ide % python manage.py startapp oauth
(django1.11) nimengwei@nimengweideMacBook-Pro django_ide % python manage.py startapp accounts
(django1.11) nimengwei@nimengweideMacBook-Pro django_ide % python manage.py startapp pay     
(django1.11) nimengwei@nimengweideMacBook-Pro django_ide % 

URL嵌套

  1. 設計優(yōu)雅的URL
    (1) 更簡潔的URL
    優(yōu)化前:http://example.com/article/?year=2018&month=12&day=21
    優(yōu)化后:http://example.com/article/2018/12/21
    (2) 使用命名空間
    兩種不同的角色,訪問不同的URL,但是結果相同。
    使用namespace指定命名空間。
urlpatterns = [
    url(r'^author-polls/', include('polls.urls', namespace='author-polls')),
    url(r'^publisher-polls/', include('polls.urls', namespace='publisher-polls')),
]

(3) 使用nameURL指定名稱

 url(r'^article/2018/$', views.article, name='article_detail')

給URL指定名稱并逆向解析

1.3 視圖

1.4 模板語法

2. 實戰(zhàn):Django對象關系映射(ORM)

3. 表單介紹與使用

4. Web項目實戰(zhàn)-后臺管理系統(tǒng)

5. Django命令工具與中間件

6. Django的安全及維護

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

相關閱讀更多精彩內容

  • Django 準備 “虛擬環(huán)境為什么需要虛擬環(huán)境:到目前位置,我們所有的第三方包安裝都是直接通過 pip inst...
    33jubi閱讀 1,391評論 0 5
  • 點我查看本文集的說明及目錄。 本項目相關內容( github傳送 )包括: 實現(xiàn)過程: CH1 創(chuàng)建一個博客應用 ...
    學以致用123閱讀 1,607評論 1 3
  • Python程序員有很多很好的選擇來創(chuàng)建Web應用程序和API;Django,Weppy,Bottle和Flask...
    顧家樂1020閱讀 711評論 0 4
  • 第二天,在第一朵彼岸花的帶領下,我隨處轉了轉。看見她輕而易舉地從天河里撈出一顆顆暗淡無光的生辰石,隨手施過法術又重...
    邵小妮er閱讀 360評論 0 7
  • 晚風徐徐吹拂著山川,吹拂著已經(jīng)蔥蘢的玉米苗、黃豆秧,也拂去種田人一天的煩熱和疲憊。 夏夜,在如瀉的清輝里,在小河吟...
    天涯鵬程醉書生閱讀 546評論 0 3

友情鏈接更多精彩內容