Django 快速入門

1. 創(chuàng)建項目與app

創(chuàng)建項目

django-admin startproject firstsite

創(chuàng)建app

python manage.py startapp firstapp




2.settings里面添加app

編輯 firstsite/settings.py

# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'firstapp',  # 添加剛才創(chuàng)建的app
)




3. 編輯models層

打開 firstapp/models.py导盅,編輯如下內(nèi)容:

from django.db import models

# 創(chuàng)建一個叫 Article 的類冈钦,它繼承自django.db.models.Model慕购,
# headline 和 content 是它的屬性辅柴,都繼承自django.db.models.Field
# 并定義了屬性的數(shù)據(jù)類型和限制
class Article(models.Model):
    headline = models.CharField(null=True, blank=True, max_length=200)
    content = models.TextField(null=True, blank=True)

    # 讓實例在后臺管理界面顯示自己的headline
    def __str__(self):
        return self.headline




4. 創(chuàng)建和合并數(shù)據(jù)庫

對 Model 做了修改后讥巡,使用 makemigrations 命令,你的 Model 會被掃描, 然后與 migrations文件夾中以前的版本作比較, 然后生成本次遷移文件衍慎。

python manage.py makemigrations

有了新的 migration 文件甥角,就可以使用 migrate 命令修改數(shù)據(jù)庫模式:

python manage.py migrate

每次修改完 Model 后都應該執(zhí)行上訴命令。




5.設置模板路徑

在 firstapp 文件夾內(nèi)創(chuàng)建 templatesstatic 兩個文件夾呼寸,html 文件放入 templates 文件夾艳汽,css、js 和圖片等文件放入 static 中.

文檔目錄樹如下:

然后在 settings.py 中修改模板路徑:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',

        # 模板路徑对雪,意思是:找到根目錄河狐,在根目錄下添加 templates
        'DIRS': [os.path.join(BASE_DIR, 'firstapp', 'templates').replace('\\','/')],

        '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',
            ],
        },
    },
]




6.創(chuàng)建管理后臺和超級管理員

在 firstsite 目錄下打開命令行,輸入:

python manage.py createsuperuser

按要求慌植,填上用戶名甚牲、郵箱、密碼蝶柿,打開: http://127.0.0.1:8000/admin/ 丈钙,登錄管理界面,就能看到以下界面:

要讓 Article 出現(xiàn)在管理界面戒洼,需要在 admin.py 引入相應的數(shù)據(jù)項:

from django.contrib import admin
from firstapp.models import Article  # c從模板層引入Article

admin.site.register(Article)  # 在后臺管理中添加 Article

這樣后臺就多了 Article 一項了靴寂。

你可以點進去添加新內(nèi)容:




7.在 View 中獲取 Model 的數(shù)據(jù)

編輯 views.py剖踊,引入 model 中文章列表祥山,然后渲染網(wǎng)頁:

from django.shortcuts import render
from firstapp.models import Article  # 從modles引入剛創(chuàng)建的類Article
from django.template import Template,Context

def index(request):
    # 全部的文章列表
    article_list = Article.objects.all() 

    # 一個字典結構,包裝要渲染的數(shù)據(jù)
    context = {'article_list': article_list} 

    # 渲染,包含三個參數(shù):request麻裁、模板 html 的名字手销、context
    index_page = render(request, 'first_web.html', context) 

    return index_page




8.在 Template 中增加動態(tài)內(nèi)容

編輯 templates 文件夾里相應的 html 文件(這里我命名為:first_web.html):

<!DOCTYPE html>
 <!-- Django 的靜態(tài)文件標簽 -->
{% load staticfiles %}

<html>
    <head>
        <meta charset="utf-8">
        <title>first_web</title>
        <!-- 引入 static 文件夾里面的css樣式 -->
        <link rel="stylesheet" href="{% static 'css/semantic.css' %}" media="screen" title="no title">
    </head>

    <body>

    <div class="ui segment">
        <h1 class="ui centered header">Your Blog</h1>
    </div>

    <div class="ui basic segment">
        <!-- 引入 static 文件夾里面的圖片 -->
        ![]({% static )
    </div>
    
    <!-- 用一個 for 循環(huán)來順序展示 article 里的內(nèi)容 -->
    {% for article in article_list %}
        <div class="ui very padded segment">
            <h2>
                <i class="star icon"></i>
                <!-- article 的標題 -->
                {{article.headline}}
            </h2>
            <!-- article 的內(nèi)容 -->
            <p>{{article.content}}</p>
        </div>
        <br>
    {% endfor %}
    <!-- for 循環(huán)結束 -->

    </body>
</html>




9.在 URL 中分配網(wǎng)址

編輯 urls.py,作用是讓鏈接可以被訪問:

from django.conf.urls import include, url
from django.contrib import admin
# 引入視圖
from firstapp.views import index

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', index, name='index'),
]

現(xiàn)在打開:http://127.0.0.1:8000/index 柄错,可以看到網(wǎng)站已經(jīng)創(chuàng)建好了。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鄙陡,隨后出現(xiàn)的幾起案子冕房,更是在濱河造成了極大的恐慌躏啰,老刑警劉巖趁矾,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異给僵,居然都是意外死亡毫捣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門帝际,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔓同,“玉大人,你說我怎么就攤上這事蹲诀“吡唬” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵脯爪,是天一觀的道長则北。 經(jīng)常有香客問我,道長痕慢,這世上最難降的妖魔是什么尚揣? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮掖举,結果婚禮上快骗,老公的妹妹穿的比我還像新娘。我一直安慰自己塔次,他們只是感情好方篮,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著励负,像睡著了一般藕溅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上熄守,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天蜈垮,我揣著相機與錄音,去河邊找鬼裕照。 笑死攒发,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的晋南。 我是一名探鬼主播惠猿,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼负间!你這毒婦竟也來了偶妖?” 一聲冷哼從身側響起姜凄,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎趾访,沒想到半個月后态秧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡扼鞋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年申鱼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片云头。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡捐友,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出溃槐,到底是詐尸還是另有隱情匣砖,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布昏滴,位于F島的核電站猴鲫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏影涉。R本人自食惡果不足惜变隔,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蟹倾。 院中可真熱鬧匣缘,春花似錦、人聲如沸鲜棠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽豁陆。三九已至柑爸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盒音,已是汗流浹背表鳍。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留祥诽,地道東北人譬圣。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像雄坪,于是被迫代替她去往敵國和親厘熟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

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