——————————————————————
Django系列筆記:
一、開發(fā)環(huán)境搭建
二:添加第一個(gè)應(yīng)用
三:配置Mysql數(shù)據(jù)庫1
四:配置Mysql數(shù)據(jù)庫2
五:模型models
……
——————————————————————
一、前言
前一個(gè)筆記介紹了,如何搭建Django的開發(fā)環(huán)境,并且創(chuàng)建一個(gè)屬于自己的django項(xiàng)目,詳情請看Python的開源服務(wù)端一:Django開發(fā)環(huán)境搭建
前提都已經(jīng)準(zhǔn)備好了,忍不住開始Django之旅啦。
二、添加你的應(yīng)用
在之前的基礎(chǔ)上,我來場景屬于自己的app
1.. 創(chuàng)建新的app:
創(chuàng)建完項(xiàng)目后,在mysite目錄下創(chuàng)建一個(gè)名為HelloDjango的app:
python manage.py startapp HelloDjango
創(chuàng)建完成后,查看目錄,目錄結(jié)構(gòu)如下:

這些目錄和文件的用處是:
- 最外層的
mysite/根目錄只是你項(xiàng)目的容器, 根目錄名稱對Django沒有影響,你可以將它重命名為任何你喜歡的名稱。manage.py: 一個(gè)讓你用各種方式管理 Django 項(xiàng)目的命令行工具。你可以閱讀 django-admin and manage.py 獲取所有manage.py的細(xì)節(jié)。- 里面一層的
mysite/目錄包含你的項(xiàng)目,它是一個(gè)純 Python 包。它的名字就是當(dāng)你引用它內(nèi)部任何東西時(shí)需要用到的 Python 包名。 (比如mysite.urls).mysite/__init__.py:一個(gè)空文件,告訴 Python 這個(gè)目錄應(yīng)該被認(rèn)為是一個(gè) Python 包。如果你是 Python 初學(xué)者,閱讀官方文檔中的 更多關(guān)于包的知識。mysite/settings.py:Django 項(xiàng)目的配置文件。如果你想知道這個(gè)文件是如何工作的,請查看 Django settings 了解細(xì)節(jié)。mysite/urls.py:Django 項(xiàng)目的 URL 聲明,就像你網(wǎng)站的“目錄”。閱讀 URL dispatcher 文檔來獲取更多關(guān)于 URL 的內(nèi)容。mysite/asgi.py:作為你的項(xiàng)目的運(yùn)行在 ASGI 兼容的Web服務(wù)器上的入口。閱讀 如何使用 WSGI 進(jìn)行部署 了解更多細(xì)節(jié)。mysite/wsgi.py:作為你的項(xiàng)目的運(yùn)行在 WSGI 兼容的Web服務(wù)器上的入口。閱讀 如何使用 WSGI 進(jìn)行部署 了解更多細(xì)節(jié)。
現(xiàn)在,我們再次啟動 Web 服務(wù)器,執(zhí)行命令:
python manage.py runserver
測試訪問本機(jī)的 admin,使用瀏覽器訪問:http://127.0.0.1:8000/admin

這里需要賬號和密碼才能登陸,后面會介紹如何添加管理員,添加后,就可以登陸了。
創(chuàng)建完成后,用pycharm打開整個(gè)工程mystite,方便編碼。
在mysite/mysite目錄結(jié)構(gòu)中找到setting.py,打開并找到INSTALLED_APPS,把我們的app ‘HelloDjango’ 添加到最底下

OK,添加完畢
2. 設(shè)計(jì)你的模型:
Django一個(gè)比較方便的地方是它附帶了一個(gè)可以用Python代碼描述數(shù)據(jù)庫布局的對象關(guān)系映射器,數(shù)據(jù)模型語法提供了許多豐富的方法來展現(xiàn)你的模型。
創(chuàng)建一個(gè)包含title,content,pub time的模型
打開models.py,添加以下代碼:
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=32,default='Title')
content = models.TextField(null=True)
pub_time = models.DateTimeField(auto_now_add=True)
創(chuàng)建完成后同步數(shù)據(jù)庫:
powershell 執(zhí)行以下命令
python manage.py makemigrations
python manage.py migrate
并在admin.py中注冊:
打開admin.py,添加以下代碼:
from django.contrib import admin
from .models import Article
admin.site.register(Article)
OK,一個(gè)簡單的數(shù)據(jù)模型就這樣添加完成,是否非常簡單。
3. Admin 管理工具
Django 最強(qiáng)大的部分之一是自動生成的Admin 界面。它讀取模型中的元數(shù)據(jù)來提供一個(gè)強(qiáng)大的、生產(chǎn)環(huán)境就緒的界面,使內(nèi)容提供者能立即用它向站點(diǎn)中添加內(nèi)容。
添加管理員賬號
powershell 執(zhí)行以下命令,會引導(dǎo)你完成管理賬號的添加
python manage.py createsuperuser
通過127.0.0.1:8000/admin訪問Admin界面,用剛才的管理員賬戶登錄。

你可在settings.py中將Admin界面的語言和時(shí)間設(shè)置為中國
LANGUAGE_CODE = ‘zh-hans’
TIME_ZONE = ‘Asia/Shanghai’
4. 前端頁面
Django的前端頁面保存在Templates文件夾中,在HelloDjango中新建Templates文件夾并編寫自己的前端代碼。圖片等資源則需要保存在static文件夾中。
配置url與views
我們可以為每個(gè)app單獨(dú)配置url,
- 首先配置mysite中的urls.py
from django.contrib import admin
from django.urls import path
from django.urls import include
urlpatterns = [
path('admin/', admin.site.urls),
path('HelloDjango/',include('HelloDjango.urls')),
]
- 在HelloDjango中新建urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index),
]
- 在views.py中
from django.shortcuts import render
from . import models
def index(request):
return render(request,'index.html')
- 在 Templates下,添加index.html文件,打開寫入以下h5代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello,Django!</title>
<style type="text/css">
html {
width: 100%;
height: 100%;
overflow: hidden;
font-style: sans-serif;
}
body {
width: 100%;
height: 100%;
font-family: 'Open Sans', sans-serif;
margin: 0;
background-color: #FF8080;
}
#login {
position: absolute;
top: 50%;
left: 50%;
margin: -150px 0 0 -150px;
width: 300px;
height: 300px;
}
#login h1 {
color: #fff;
text-shadow: 0 0 10px;
letter-spacing: 1px;
text-align: center;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
input {
width: 278px;
height: 18px;
margin-bottom: 10px;
outline: none;
padding: 10px;
font-size: 13px;
color: #fff;
text-shadow: 1px 1px 1px;
border-top: 1px solid #312E3D;
border-left: 1px solid #312E3D;
border-right: 1px solid #312E3D;
border-bottom: 1px solid #56536A;
border-radius: 4px;
background-color: #2D2D3F;
}
.but {
width: 300px;
min-height: 20px;
display: block;
background-color: #4a77d4;
border: 1px solid #3762bc;
color: #fff;
padding: 9px 14px;
font-size: 15px;
line-height: normal;
border-radius: 5px;
margin: 0;
}
</style>
</head>
<body>
<div id="login">
<h1>Hello,My First Django!</h1>
</div>
</body>
</html>
- 查看自己編寫的index.html的內(nèi)容
powershell 執(zhí)行命令,啟動 Django 的 Web 服務(wù)器
python manage.py runserver
此時(shí)訪問http://127.0.0.1:8000/HelloDjango則會顯示:

到這里,我們就能看到一個(gè)完整的應(yīng)用了。
三. 加載數(shù)據(jù)庫中的內(nèi)容:
前面,已經(jīng)添加數(shù)據(jù)模型,與首頁,那么我們該如何使用數(shù)據(jù)模型去添加數(shù)據(jù),二號使用數(shù)據(jù)在頁面顯示呢
def Article(request,Article_id):
article = models.Article.objects.get(pk=Article_id)
return render(request,'article.html',{'article':article})
- 在urls.py中添加:
url('article/(?P<Article_id>[0-9]+)$', views.Article)
- 在 Templates下,添加Ariticle.html文件
在之前index.html 的基礎(chǔ)上,修改body,做出以下調(diào)整
<body>
<div id="login">
<h1>Hello,My First Django!</h1>
<div>
<label class="required" for="id_title">{{article.title}}</label>
</div>
<label class="required" for="id_title">{{article.content}}</label>
</div>
</body>
通過{{article.title}},{{article.content}}可以分別加載出文章的標(biāo)題,內(nèi)容(對應(yīng)自己創(chuàng)建的模型)
完成后,通過訪問‘127.0.0.1:8000/HelloDjango/article/’ + 文章的id 就可以訪問指定的文章
如127.0.0.1:8000/HelloDjango/article/1 訪問新建的第一篇文章:

四、結(jié)語
如此,輕松簡單就能把一個(gè)前后端的應(yīng)用給整起來了,還在為后臺服務(wù)開發(fā)煩惱嗎,趕緊用起來把。
由于時(shí)間的原因,這里就簡單介紹Django的一些非?;A(chǔ)的環(huán)境及應(yīng)用,以后有時(shí)間會抽取更多的時(shí)間來,深入的學(xué)習(xí)介紹,敬請期待。
