開源服務(wù)端框架Django二:添加第一個(gè)應(yīng)用

——————————————————————
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)如下:


2.png

這些目錄和文件的用處是:

  • 最外層的 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

3.png

這里需要賬號和密碼才能登陸,后面會介紹如何添加管理員,添加后,就可以登陸了。

創(chuàng)建完成后,用pycharm打開整個(gè)工程mystite,方便編碼。

在mysite/mysite目錄結(jié)構(gòu)中找到setting.py,打開并找到INSTALLED_APPS,把我們的app ‘HelloDjango’ 添加到最底下

4.png

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界面,用剛才的管理員賬戶登錄。

強(qiáng)大的 Python web 框架

你可在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則會顯示:

5.png

到這里,我們就能看到一個(gè)完整的應(yīng)用了。

三. 加載數(shù)據(jù)庫中的內(nèi)容:

前面,已經(jīng)添加數(shù)據(jù)模型,與首頁,那么我們該如何使用數(shù)據(jù)模型去添加數(shù)據(jù),二號使用數(shù)據(jù)在頁面顯示呢

  • 添加數(shù)據(jù)
    admin,我們就可以點(diǎn)擊,添加Articles數(shù)據(jù)

    6.png

    保存,即可

  • 在views.py中加載:

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 訪問新建的第一篇文章:


7.png

四、結(jié)語

如此,輕松簡單就能把一個(gè)前后端的應(yīng)用給整起來了,還在為后臺服務(wù)開發(fā)煩惱嗎,趕緊用起來把。

由于時(shí)間的原因,這里就簡單介紹Django的一些非?;A(chǔ)的環(huán)境及應(yīng)用,以后有時(shí)間會抽取更多的時(shí)間來,深入的學(xué)習(xí)介紹,敬請期待。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容