摘要:內(nèi)部結(jié)構(gòu)時(shí),頁面發(fā)生錯(cuò)誤會(huì)直接拋給前臺(tái),便于程序員進(jìn)行修改。,用戶新建了需要在該欄目下進(jìn)行注冊。拓展閱讀圖解筆記基礎(chǔ)教程自強(qiáng)學(xué)堂備注該筆記源自網(wǎng)易微專業(yè)開發(fā)節(jié)本文由創(chuàng)作采用知識(shí)共享署名中國大陸許可協(xié)議進(jìn)行許可。
Why Django
在一定的時(shí)間內(nèi),有限的技術(shù)情況下,建設(shè)一個(gè)高質(zhì)量的網(wǎng)站,Django幾乎成了唯一的方案。
Django把所有可能性都考慮到了,從這種程度上看復(fù)雜就意味著全面,畢竟時(shí)間更重要!
強(qiáng)大的數(shù)據(jù)庫功能
自帶的強(qiáng)大的后臺(tái)功能
優(yōu)雅的網(wǎng)址
模板系統(tǒng)
緩存系統(tǒng)
國際化
Django應(yīng)用案例國外:Disqus、Pinterest、Instagram、NASA Science等
國內(nèi):豆瓣、知乎、餓了么等
1、安裝pip
2、安裝Django
3、安裝pyflakes
4、Atom安裝插件:atom-django、autocomplete-python、platformio-ide-terminal(也可以用pycharm)
request ---->Django Web------>response流程內(nèi)部結(jié)構(gòu):
request——————>urls——————>views<——————models | | ↓ templatesMTV
models-----數(shù)據(jù): 作為數(shù)據(jù)庫的代理人,通過 model 操作數(shù)據(jù)庫。
Templates-----模板: 把數(shù)據(jù)填充進(jìn)網(wǎng)頁中進(jìn)行渲染。
Views-----視圖:把渲染好的網(wǎng)頁返回給使用者,讓我們可以在瀏覽器中看到網(wǎng)頁。
Urls-----鏈接:找到每個(gè) url 對應(yīng)的 view。
復(fù)雜的功能,分開可以多帶帶的職責(zé)進(jìn)行處理,快速找到錯(cuò)誤,方便處理和維護(hù)。
最簡單的Django網(wǎng)站:網(wǎng)站創(chuàng)建的流程:P ---> A ---> D ---> M ---> V ---> T ---> U
P: 創(chuàng)建project django-admin startproject firstsite
A: 創(chuàng)建APP python manage.py startapp firstapp
D: 創(chuàng)建數(shù)據(jù)庫 python manage.py migrate
M: 創(chuàng)建數(shù)據(jù)庫的表 models創(chuàng)建相關(guān)模型類class
V: 創(chuàng)建視圖 views創(chuàng)建相關(guān)視圖def
T: 創(chuàng)建模板 templates/static 用模板語言進(jìn)行修改
U: 創(chuàng)建對應(yīng)的url正則關(guān)系 設(shè)置訪問url
django-admin startproject firstsite
生成以下文件:
firstsite ├── manage.py └── firstsite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
文件解釋:
manage.py:django中命令的運(yùn)行文件,一般格式為:python manage.py 命令名稱。
__init__.py:是python包的目錄結(jié)構(gòu)必須的。
setting.py:Django配置全局變量和屬性的文件,比如 DEBUG 的開關(guān),靜態(tài)文件的位置等。
urls.py:網(wǎng)址入口,關(guān)聯(lián)到對應(yīng)的views.py中的一個(gè)函數(shù)(或者generic類),訪問網(wǎng)址就對應(yīng)一個(gè)函數(shù)。
wsgi.py:部署服務(wù)器時(shí)用到的wsgi.py文件。
settings內(nèi)部結(jié)構(gòu):
DEBUG = True時(shí),頁面發(fā)生錯(cuò)誤會(huì)直接拋給前臺(tái),便于程序員進(jìn)行修改。在真實(shí)環(huán)境中需要關(guān)閉,DEBUG=False。
當(dāng) DEBUG=False 時(shí),ALLOW_HOSTS這個(gè)為必填項(xiàng),如果不想輸入,可以用 ALLOW_HOSTS = ["*"] 來允許所有的訪問。
INSTALLED_APPS,用戶新建了APP需要在該欄目下進(jìn)行注冊。
TEMPLATES:若新建了templates文件夾,需要修改DIRS地址:
"DIRS": [os.path.join(BASE_DIR, "templates").replace("", "/")],
DATABASES默認(rèn)的是:sqlite3, 修改為mysql如下:
DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "testdb", "USER":"younger", "PASSWORD":"123", "HOST":"", "PORT":"", } }
LANGUAGE_CODE = "en-us", 中文修改為"zh-Hans"。
創(chuàng)建APPpython manage.py startapp firstapp
(項(xiàng)目站點(diǎn)的模塊,一個(gè)project下面可以有多個(gè)app)
生成以下文件: migrations: 生成數(shù)據(jù)庫的py腳本文件夾。 __init__: 是python包的目錄結(jié)構(gòu)必須的。 admin.py:后臺(tái),可以用很少量的代碼就擁有一個(gè)強(qiáng)大的后臺(tái)。 models.py: 與數(shù)據(jù)庫操作相關(guān),存入或讀取數(shù)據(jù)時(shí)用到這個(gè),當(dāng)然用不到數(shù)據(jù)庫的時(shí)候 你可以不使用。 views.py: 處理用戶發(fā)出的請求,從urls.py中對應(yīng)過來, 通過渲染templates中的網(wǎng)頁可以將顯示內(nèi)容,比如登陸后的用戶名,用戶請求的數(shù)據(jù),輸出到網(wǎng)頁。 tests.py: 網(wǎng)站的測試代碼。添加app到INSTALL_APPS
新建的app如果不加到INSTALL_APPS 中的話, django 就不能自動(dòng)找到app中的模板文件(app-name/templates/下的文件)和靜態(tài)文件(app-name/static/中的文件) 。
創(chuàng)建數(shù)據(jù)庫python mange.py makemigrations
makemigrations命令生成的文件會(huì)存到migrations/目錄下,生成復(fù)雜的創(chuàng)建數(shù)據(jù)庫的語句。
python mange.py migrate
之前的makemigrations操作只是生成migration文件,還沒有對數(shù)據(jù)庫進(jìn)行操作,接下來執(zhí)行migrate命令,完成數(shù)據(jù)的合并和修改。
makemigrations vs migrate makemigrations的意思是將model編譯成mysql可以理解的sql語句,存放在那個(gè)migrations文件夾里面。 migrate是將這個(gè)最新生成的py文件執(zhí)行,讓數(shù)據(jù)庫能夠按照sql語句進(jìn)行表的修改。由于sql語句中有很多的標(biāo)點(diǎn)符號(hào)是和python沖突的,經(jīng)常需要轉(zhuǎn)義數(shù)據(jù)庫才能執(zhí)行。因此直接使用model模塊可以省去你很多書寫sql語句的煩惱。啟動(dòng)服務(wù)器
python mange.py runserver 臨時(shí)測試的服務(wù)器案例分析 views中定義視圖
t = Template(html_string) # 用來把 html 字符變成模板,類似于打孔。 c = Context({"person":person}) # 創(chuàng)建一個(gè)上下文 context,django 規(guī)定 context 必須是字典的形式,類似于造補(bǔ)丁。 web_page = t.render(c) # 對模板進(jìn)行渲染,把上下文渲染到模板里面,類似于打補(bǔ)丁。 return HTTPResponse(web_page) # web_page表示的網(wǎng)頁字符串轉(zhuǎn)化具體可見的網(wǎng)頁response。
拓展閱讀:
1、《圖解HTTP》筆記
2、Django 基礎(chǔ)教程(自強(qiáng)學(xué)堂)
備注
該筆記源自網(wǎng)易微專業(yè)《Python web開發(fā)》1.1、1.2節(jié)
本文由EverFighting創(chuàng)作,采用 知識(shí)共享署名 3.0 中國大陸許可協(xié)議進(jìn)行許可。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38535.html
摘要:在談中框架和框架的區(qū)別之前,我們需要先探討如下幾個(gè)問題。通過大數(shù)據(jù)統(tǒng)計(jì)分析全球著名的網(wǎng)站對和這兩個(gè)框架的調(diào)查分析。從全球著名的代碼托管平臺(tái)上的和數(shù)量上分別為,分別為。 在談Python中Django框架和Flask框架的區(qū)別之前,我們需要先探討如下幾個(gè)問題。 一、為什么要使用框架? showImg(https://segmentfault.com/img/remote/14600000...
摘要:在第一次執(zhí)行循環(huán)時(shí)該變量為是一個(gè)布爾值在最后一次執(zhí)行循環(huán)時(shí)被置為。注冊自定義修改顯示字段管理后臺(tái)默認(rèn)顯示,在中添加返回值方法,修改顯示效果。 理解上下文 render(request,x.html,context) request:請求的固定寫法。 x.html:模板,需要填補(bǔ)丁的模板。 context:上下文,填充模板的補(bǔ)丁。 模板的使用流程 寫模板,創(chuàng)建Template對象,用...
摘要:試想,在多線程服務(wù)器中,多個(gè)線程同時(shí)處理不同客戶端發(fā)送的不同請求時(shí),每個(gè)線程看到的對象必然不同。多線程服務(wù)器會(huì)創(chuàng)建一個(gè)線程池,再從線程池中選擇一個(gè)線程用于處理接收到的請求。 框架 Django flask flask是一個(gè)輕量的web開發(fā)應(yīng)用示例開發(fā)一個(gè)小應(yīng)用 from flask import Flask app = Flask(__name__) @app.route(/) d...
摘要:源網(wǎng)頁說明文檔所有關(guān)于你應(yīng)該且必須知道的。性能和優(yōu)化概述的兼容性旨在兼容多種不同版本的支持的兼容性地理框架打算成為世界級(jí)的地理框架。其目標(biāo)是盡可能簡單地構(gòu)建應(yīng)用程序并利用空間使能數(shù)據(jù)的功能。 源網(wǎng)頁:https://docs.djangoproject.co... django說明文檔 所有關(guān)于django你應(yīng)該且必須知道的。 第一步 你是否django編程新手,那就從此開始!從零開始...
閱讀 2406·2021-11-18 10:02
閱讀 1922·2021-10-13 09:40
閱讀 2999·2021-09-07 10:07
閱讀 2106·2021-09-04 16:48
閱讀 1005·2019-08-30 13:18
閱讀 2452·2019-08-29 14:03
閱讀 2922·2019-08-29 12:54
閱讀 3155·2019-08-26 11:41