web框架django初探
Web框架介紹
一般會分為兩部分:服務器程序和應用程序。服務器程序負責對socket服務器進行封裝,并在請求到來時,對請求的各種數據進行整理。應用程序則負責具體的邏輯處理。為了方便應用程序的開發,就出現了眾多的Web框架,例如:Django、Flask、web.py 等。不同的框架有不同的開發方式,但是無論如何,開發出的應用程序都要和服務器程序配合,才能為用戶提供服務。這樣,服務器程序就需要為不同的框架提供不同的支持。這樣混亂的局面無論對于服務器還是框架,都是不好的。對服務器來說,需要支持各種不同框架,對框架來說,只有支持它的服務器才能被開發出的應用使用。這時候,標準化就變得尤為重要。我們可以設立一個標準,只要服務器程序支持這個標準,框架也支持這個標準,那么他們就可以配合使用。一旦標準確定,雙方各自實現。這樣,服務器可以支持更多支持標準的框架,框架也可以使用更多支持標準的服務器。
WSGI(Web Server Gateway Interface)是一種規范,它定義了使用python編寫的web app與web server之間接口格式,實現web app與web server間的解耦。
Web框架之Django
介紹
Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MVC的軟件設計模式,即模型M,視圖V和控制器C。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟件。并于2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。
Django是一個基于MVC構造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。它們各自的職責如下:
- 模型(Model),即數據存取層
處理與數據相關的所有事務: 如何存取、如何驗證有效性、包含哪些行為以及數據之間的關系等。
- 模板(Template),即表現層
處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。
- 視圖(View),即業務邏輯層
存取模型及調取恰當模板的相關邏輯。模型與模板之間的橋梁。

安裝
pip install django
使用
1.創建項目
終端命令:django-admin startproject mysite 創建項目
IDE創建Django程序時,本質上都是自動執行上述命令
2.程序目錄
mysite 項目目錄
├── manage.py django啟動管理程序
└── mysite
├── init.py
├── settings.py 項目的配置文件
├── urls.py 路由文件
└── wsgi.py wsgi有多重一種uwsgi和wsgi,你用那種wsgi來運行Django,一般不用改只有你用到的時候在改
3.創建app
Project和App概念:Project是一個大的項目,里面可以有多個app,app是項目的一個子項目
-
執行命令進行創建:
python manage.py startapp app01
-
目錄:
app01
├── init.py
├── admin.py
├── apps.py
├── migrations
│?? └── init.py
├── models.py 數據庫相關配置
├── tests.py 測試腳本
└── views.py 存放處理用戶請求的函數,由urls.py調度
4.生成數據庫,運行django
1.同步數據庫 python manage.py makemigrations ?#生成配置 python manage.py migrate #同步表到數據庫 2.python manage.py runserver 80005.路由
修改urls.py,寫url的路有規則
from django.conf.urls import url from django.contrib import admin # 導入app下的view函數 from mysite import views urlpatterns = [ url(r'^admin/', admin.site.urls), # 當用戶訪問http://127.0.0.1:端口號的時候之間交給myiste下面的views里的index函數來處理 url(r'^$', views.index), ]6.視圖view
修改views.py,添加index的函數,處理http請求
# Django 在返回的時候需要一層封裝,需要導入HttpResponse from django.shortcuts import render,HttpResponse# Create your views here. def index(request):#使用HttpRespons 封裝返回信息return HttpResponse('<h1>hello world!!!</h1>')django中的路由系統和其他語言的框架有所不同,在django中每一個請求的url都要有一條路由映射,這樣才能將請求交給對一個的view中的函數去處理。其他大部分的Web框架則是對一類的url請求做一條路由映射,從而是路由系統變得簡潔。
- 返回html頁面
7.注冊app
把我們新定義的app加到settings.py中的INSTALL_APPS中
INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01', )8.運行django
python manage.py runserver
9.django基本命令
1.創建django命令 django-admin.py startproject mysite(程序名) 2.創建django的app python manage.py startapp cmdb(app的名字) 或 django-admin.py startapp cmdb(app的名字) 3.同步數據庫 python manage.py syncdb 注意:Django 1.7.1及以上的版本需要用以下命令 python manage.py makemigrations python manage.py migrate 4.調試模式 python manage.py runserver 8001 # 監聽所有可用 ip (電腦可能有一個或多個內網ip,一個或多個外網ip,即有多個ip地址) python manage.py runserver 0.0.0.0:8000 5.清除數據庫 python manage.py flush 6.創建超級管理員 python manage.py createsuperuser 按照提示就ok 7.修改管理員密碼 python manage.py changepassword username(你當時設定的用戶名) 8.導入和導出數據 python manage.py dumpdata appname > appname.json python manage.py loaddata appname.json 9.進入數據庫 python manage.py dbshell 10.更多命令 python manage.py -h模版語言:
{{ item }}
{% for item in item_list %} {{ item }} {% endfor %}
forloop.counter
forloop.first
forloop.last
{% if ordered_warranty %} {% else %} {% endif %}
母板:{% block title %}{% endblock %}
子板:{% extends "base.html" %}
{% block title %}{% endblock %}
幫助方法:
{{ item.event_start|date:"Y-m-d H:i:s"}}
{{ bio|truncatewords:"30" }}
{{ my_list|first|upper }}
{{ name|lower }}
轉載于:https://www.cnblogs.com/pycode/p/django01.html
總結
以上是生活随笔為你收集整理的web框架django初探的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [LNMP]——LNMP环境配置
- 下一篇: CVE-2010-0249 极光