django

1法精、安裝撑柔,指定安裝2.2版本


image.png

pip install django==2.2 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

2获询、創(chuàng)建測試項(xiàng)目
django-admin.py startproject testDjango
cd testDjango
python manage.py runserver

生成目錄結(jié)構(gòu)如下


image.png

目錄結(jié)構(gòu)說明:
testDjango: 項(xiàng)目的容器掖棉。
manage.py: 一個(gè)實(shí)用的命令行工具聂抢,可讓你以各種方式與該 Django 項(xiàng)目進(jìn)行交互拯钻。
testDjango/init.py: 一個(gè)空文件帖努,告訴 Python 該目錄是一個(gè) Python 包。
testDjango/settings.py: 該 Django 項(xiàng)目的設(shè)置/配置粪般。
testDjango/urls.py: 該 Django 項(xiàng)目的 URL 聲明; 一份由 Django 驅(qū)動的網(wǎng)站"目錄"拼余。
testDjango/wsgi.py: 一個(gè) WSGI 兼容的 Web 服務(wù)器的入口,以便運(yùn)行你的項(xiàng)目亩歹。

訪問地址為http://127.0.0.1:8000


image.png

修改默認(rèn)視圖匙监,在testDjango項(xiàng)目下創(chuàng)建一個(gè)Index.py文件,并輸出This is my first django project,這里我們需要使用django的http模塊的httpresponse函數(shù)坐輸出渲染
Index.py文件
from django.http import HttpResponse
def index(request):
return HttpResponse("This is my first django project")

urls.py文件
from django.urls import path
from . import Index

urlpatterns = [
path('', Index.index),
]

訪問效果如圖


image.png

urls或者添加path
from django.urls import path
from . import Index

urlpatterns = [
path('index/', Index.index),
]

訪問的時(shí)候加index路徑


image.png

3小作、django可以包含多個(gè)模塊亭姥,創(chuàng)建后臺管理模塊
python manage.py startapp sysadmin

執(zhí)行上面的命令會在當(dāng)前路徑下創(chuàng)建admin目錄,其目錄結(jié)構(gòu)如下所示:

init.py:一個(gè)空文件顾稀,告訴Python解釋器這個(gè)目錄應(yīng)該被視為一個(gè)Python的包达罗。
admin.py:可以用來注冊模型,用于在Django的管理界面管理模型静秆。
apps.py:當(dāng)前應(yīng)用的配置文件粮揉。
migrations:存放與模型有關(guān)的數(shù)據(jù)庫遷移信息绍载。
init.py:一個(gè)空文件,告訴Python解釋器這個(gè)目錄應(yīng)該被視為一個(gè)Python的包滔蝉。
models.py:存放應(yīng)用的數(shù)據(jù)模型击儡,即實(shí)體類及其之間的關(guān)系(MVC/MTV中的M)。
tests.py:包含測試應(yīng)用各項(xiàng)功能的測試類和測試函數(shù)蝠引。
views.py:處理請求并返回響應(yīng)的函數(shù)(MVC中的C阳谍,MTV中的V)。

sysadmin模塊下創(chuàng)建views.py視圖
from django.http import HttpResponse

def view(res):
return HttpResponse("<h1> At such a time of crisis,we must try to set aside all differences and stick together")

在新模塊下創(chuàng)建url映射匹配規(guī)則,urls.py螃概,path不填表示默認(rèn)訪問路徑為根路徑
from django.urls import path
from . import views

urlpatterns = [
path('', views.view)
]

4矫夯、接下來對新模塊的url在項(xiàng)目中進(jìn)行合并,在項(xiàng)目下urls.py使用include進(jìn)行合并,sysadmin代表模塊
from django.urls import path, include
from . import views

urlpatterns = [
path('', views.view),
path('sysadmin/',include('sysadmin.urls') )
]


image.png

訪問效果如下圖


image.png

4吊洼、使用django模板顯示
在sysadmin模塊下創(chuàng)建list視圖view.py
from django.shortcuts import render

dict_words = [
{'word': 'diversity', 'meaning': 'the diversity of something is the fact that it contains many very different elements', 'eg': 'the cultural diversity of british society'},
{'word': 'antique', 'meaning': 'something made in an earlier period that is collected and considered to have value because it is beautiful, rare, old, or high quality', 'eg': 'My mother collects antique'},
{'word': 'stuff', 'meaning': 'You can use stuff to refer to things such as a substance, a collection of things, events, or ideas', 'eg': ' do not tell me you still believe in all that stuff'},

]
def sysadmin(res):
return render(res, 'word.html', {'dict_words': dict_words})

在模塊創(chuàng)建跳轉(zhuǎn)入口,urls.py
from django.urls import path
from . import views

urlpatterns = [
path('', views.sysadmin)
]

在項(xiàng)目下創(chuàng)建templates模板目錄


image.png

<h1>This is word page</h1>

<table>
<tr>
<th>word</th>
<th>meaning</th>
<th>eg</th>
</tr>
{% for word in dict_words%}
<tr>
<td>{{word.word}}</td>
<td>{{word.meaning}}</td>
<td>{{word.eg}}</td>
</tr>
{% endfor %}
</table>

在項(xiàng)目下urls.py合并url
from django.urls import path, include
from . import view

urlpatterns = [
path('', view.index),
path('sysadmin/', include('sysadmin.urls'))
]

最后修改項(xiàng)目的默認(rèn)模板設(shè)置训貌,將創(chuàng)建的templates目錄添加到里面來


image.png

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

最后啟動效果如果


image.png

6、數(shù)據(jù)庫操作
安裝數(shù)據(jù)庫模塊
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pymysql

在項(xiàng)目下init文件加入初始化數(shù)據(jù)庫代碼
import pymysql
pymysql.install_as_MySQLdb()

在setting文件配置數(shù)據(jù)庫


image.png

創(chuàng)建數(shù)據(jù)庫
create database lw_word default charset utf8;

新建模塊并注冊到app


image.png

pip卸載軟件
pip uninstall name

在models文件定義model模型冒窍,
from django.db import models

class Article(models.Model):
article_id = models.AutoField(primary_key=True)
title = models.TextField()
brief_content = models.TextField()
content = models.TextField()
publish = models.DateTimeField(auto_now=True)

生成遷移文件
python manage.py makemigrations

同步到數(shù)據(jù)庫
python manage.py migrate

數(shù)據(jù)庫建表完成


image.png

7递沪、使用django shell 插入數(shù)據(jù)
python manage.py shell 進(jìn)入django shell


image.png

from blog.models import Article
article = Article()
article.title = 'blog'
article.brief_content = 'provide sb for sth'
article.content = 'provide sb for sth'
article.save()

獲取數(shù)據(jù)庫的數(shù)據(jù)

articles = Article.objects.all()
article = articles[0]
article = articles[2]
print(article.content)

說明數(shù)據(jù)插入成功
provide sb for sth

8、django admin 模塊


image.png

image.png

image.png

創(chuàng)建超級管理員賬號综液。

source-shell
(venv)$ python manage.py createsuperuser
Username (leave blank to use 'tk'):tk
Email address: tk@qq.com
Password: 
Password (again): 
Superuser created successfully.

啟動Web服務(wù)器款慨,登錄后臺管理系統(tǒng)。

source-shell
(venv)$ python manage.py runserver


訪問[http://127.0.0.1:8000/admin](http://127.0.0.1:8000/admin)谬莹,會來到如下圖所示的登錄界面檩奠。
image.png
登錄后進(jìn)入管理員操作平臺。
image.png
至此我們還沒有看到之前創(chuàng)建的模型類附帽,需要在應(yīng)用的admin.py文件中模型進(jìn)行注冊埠戳。

注冊模型類。

(venv)$ vim blog/admin.py
from django.contrib import admin

from .models import Article

admin.site.register(Article)
注冊模型類后蕉扮,就可以在后臺管理系統(tǒng)中看到它們整胃。
image.png

打開具體對象可以查看對象屬性信息,并更改


image.png

網(wǎng)頁添加Article對象


image.png

image.png

可以看到新增的Article


image.png

為了更好的查看模型數(shù)據(jù)慢显,可以為Article模型類添加str魔法方法爪模。

image.png

image.png

響應(yīng)數(shù)據(jù)到前端
如果查詢數(shù)據(jù)提示沒有objects屬性,需要開啟django支持


image.png

python如果導(dǎo)入不了自定義包荚藻,需要設(shè)置pycharm將當(dāng)前項(xiàng)目定義為root目錄


image.png

在blog增加視圖渲染
from django.http import HttpResponse
from .models import Article
import json

Create your views here.

def blog_content(request):
articles = Article.objects.all()
article = articles[0]
title = article.title
brief_content = article.brief_content
content = article.content
id = article.article_id
date = article.publish
st = 'title: %s brief_contet: %s content: %s id %s date %s' %(title, brief_content, content, id, date)
return HttpResponse(st)

在blog應(yīng)用注冊path


image.png

在項(xiàng)目下注冊path


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市洁段,隨后出現(xiàn)的幾起案子应狱,更是在濱河造成了極大的恐慌,老刑警劉巖祠丝,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疾呻,死亡現(xiàn)場離奇詭異除嘹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)岸蜗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門尉咕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人璃岳,你說我怎么就攤上這事年缎。” “怎么了铃慷?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵单芜,是天一觀的道長。 經(jīng)常有香客問我犁柜,道長洲鸠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任馋缅,我火速辦了婚禮扒腕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘萤悴。我一直安慰自己袜匿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布稚疹。 她就那樣靜靜地躺著居灯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪内狗。 梳的紋絲不亂的頭發(fā)上怪嫌,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機(jī)與錄音柳沙,去河邊找鬼岩灭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赂鲤,可吹牛的內(nèi)容都是我干的噪径。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼数初,長吁一口氣:“原來是場噩夢啊……” “哼找爱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泡孩,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤车摄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吮播,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡变屁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了意狠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粟关。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖环戈,靈堂內(nèi)的尸體忽然破棺而出闷板,到底是詐尸還是另有隱情,我是刑警寧澤谷市,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布蛔垢,位于F島的核電站,受9級特大地震影響迫悠,放射性物質(zhì)發(fā)生泄漏鹏漆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一创泄、第九天 我趴在偏房一處隱蔽的房頂上張望艺玲。 院中可真熱鬧,春花似錦鞠抑、人聲如沸饭聚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秒梳。三九已至,卻和暖如春箕速,著一層夾襖步出監(jiān)牢的瞬間酪碘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工盐茎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兴垦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓字柠,卻偏偏與公主長得像探越,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子窑业,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

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