中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用django搭建一個簡單到不好意思見人的博客

發布時間:2020-07-12 08:49:19 來源:網絡 閱讀:488 作者:li690347460 欄目:開發技術

首先安裝django,最簡單的方法是用pip安裝

pip install Django==1.8.2

因為中文幫助文檔是這個版本。。咳咳

話不多說,首先新建第一個django項目

django-admin startproject myblog


接著創建一個應用

cd myblog

python manage.py startapp article

然后做一些初步的設置。

進入myblog/myblog/settings.py

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

添加

'DIRS': [os.path.join(BASE_DIR, 'templates')],

順便把我們 新創建的應用加入到應用列表中

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'article',
)

寫我們的第一個models

from django.db import models


class Article(models.Model):
    title = models.CharField(max_length=100)
    create_time = models.DateTimeField(auto_now_add=True)
    content = models.TextField()

然后我們遷移數據庫

在項目目錄下,即有manage.py的目錄

python manage.py makemigrations

第一句會更加你models的改變創建遷移腳本

python manage.py migrate

第二句就是遷移

這個models有個小問題,后面遇到了我會說~

下面我們要增加一個主頁。有兩種方式一種是基于函數視圖,一種是基于類的視圖,最開始我們就用就基礎的基于函數的視圖(實話是基于類的還不怎么會,咳咳。。其實基于函數的也不怎么會。。慢慢學唄)

因為我們要做的盡量簡單所以就只建一個顯示文章列表的主頁

from django.shortcuts import render
from .models import Article


def index(request):
    article_list = Article.objects.all()
    return render(request, 'article/index.html', {'article_list': article_list})


我們先從數據庫的Article表中取出所有的所有數據賦值給article_list在通過render函數傳遞給我們的模板文件index.html

接下來就時建我們的模板文件了。首先在應用的目錄下就時myblog/article/目錄下新建一個目錄templates然后在這個目錄中再建一個目錄article,再在這個目錄中建一個index.html。現在我們的項目目錄樹如下:

myblog/
├── article
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── __init__.py
│   ├── models.py
│   ├── templates
│   │   └── article
│   │       └── index.html
│   ├── tests.py
│   ├── views.py
├── db.sqlite3
├── manage.py
└── myblog
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    ├── wsgi.py


為什么django能找到我們的html.index文件呢?就是因為我們之前在setting.py設置了templates:

'DIRS': [os.path.join(BASE_DIR, 'templates')],

然后我為我們的主頁index.html增加一些簡單的html標簽

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<div>
    {% for article in article_list %}
        <h2><a href="#">{{ article.title }}</a></h2>
        <p>
        Time: {{ article.create_time }}
        </p>
        <p>
        {{ article.content}}
        </p>
    {% endfor %}
</div>
</body>
</html>


我們還得自己定義個url來指向我們所創建的視圖。

因為時簡單的博客 我們就直接在

myblog/myblog/urls.py中添加我們的url

from django.conf.urls import include, url
from django.contrib import admin
from article.views import index

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

現在整個簡單的博客就搭建完成了,當然這其中還有一些問題還得解決。

我們項目的主目錄下就是有manage.py的目錄下運行

python manage.pu runserver

然后我們就可以訪問我們的博客了,輸入http://127.0.0.1:8000/

當然我們博客里面還沒有文章,因為我們這個博客沒有添加文章的頁面,所以我們要用到django幫我自動生成的后臺。

還是,在我們項目的主目錄下就是有manage.py的目錄下運行


python manage.py createsurperuser


輸入賬號密碼,新建一個后臺管理賬號

然后我們在瀏覽器中輸入http://127.0.0.1:8000/admin/訪問我們的后臺,不過我們發現并沒有我們的Article條目提供給我們編輯。解決方法如下

在我們的應用目錄中有一個admin.py文件,即myblog/article/admin.py添加代碼如下:

from django.contrib import admin
from .models import Article


admin.site.register(Article)

在線我們在訪問http://127.0.0.1:8000/admin/我們就可以添加文章了,當然。。。。還是有問題。。。我們點add article 增加文章后,文章列表顯示的時Article object這肯定不是我們所想要 的,我們想要的是它可以顯示我們文章的title

解決方法如下:

在myblog/article/models.py中,我們自己創建的Article中添加代碼如下

from django.db import models


class Article(models.Model):
    title = models.CharField(max_length=100)
    create_time = models.DateTimeField(auto_now_add=True)
    content = models.TextField()

    def __unicode__(self):
        return self.title

如果還有什么問題就是我寫這篇文章的時候遺漏了。。。。可私信我哇咔咔。不過一般不怎么看博客。。。。能不能看到就看你的運氣了~~


路人甲:這也敢叫博客!!!!

博主: 咳咳,好尷尬~



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝丰县| 浦北县| 洪泽县| 醴陵市| 墨江| 和政县| 宜兰市| 汕头市| 潞西市| 吕梁市| 弥勒县| 桂阳县| 浠水县| 潞西市| 黄平县| 黔南| 海兴县| 昭平县| 安新县| 潜江市| 新巴尔虎左旗| 赤城县| 定日县| 阳山县| 林口县| 甘洛县| 和平县| 南涧| 探索| 内乡县| 中江县| 安陆市| 油尖旺区| 安西县| 桂林市| 许昌县| 隆化县| 玛沁县| 沂南县| 呼伦贝尔市| 普兰店市|