django基礎入門之搭建部落格系統
Django基礎
Django採用了MVC的軟體設計模式,即模型M,檢視V和控制器C。
- 安裝django: pip install django=版本
- 新建一個目錄檔案進入cmd 啟動一個專案 django-admin startproject myblog
dir檢視當前目錄
3.pycharm開啟該專案
專案目錄介紹:
manage.py:專案管理器 與專案進行互動的命令列工具集的入口
執行python mange.py來檢視所有命令
myblog目錄:專案的一個容器,包含專案的一些配置,不建議修改該目錄名
wsgi.py:
urls.py
Settings.py:專案的總配置檔案
# os模組就是對作業系統進行操作,使用該模組必須先匯入模組:
import os
# 專案的根目錄
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
4.執行專案localhost:9999 python manage.py runserver 9999
應用目錄介紹
編寫index hello world頁面
1.Views.py:
# 引入HttpResponse模組
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('hello world!')
2.url.py
from blog.views import bv
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', bv.index),
]
Url配置
1.urls.py
#include
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', include('blog.urls'))
]
2.blog應用urls.py
from django.urls import path
# 從當前模組 引入views
from . import views
urlpatterns = [
path('home/', views.index),
path('page/', views.page)
]
3.Views.py
# 引入HttpResponse模組
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('hello world!')
def page(request):
return HttpResponse('我是page!')
渲染templates index.html頁面 Index.html {{data1}} {{data2}}
# 渲染template頁面
def html(request):
# render(request引數,html頁面,字典資料)
return render(request, 'index.html', {'data1': '模板資料1', 'data2': '模板資料2'})
class Article(models.Model):
# 設定admin管理系統資料預設顯示名稱
def __str__(self):
return self.title
注意:python3 url已廢棄改用path 正則使用re_path 如下:
# (?P<name>正規表示式) name為這個組的別名 可以通過這個別名提取分組
# 別名article_id與響應函式views.detail中的引數article_id保持一致
re_path(r'^article/(?P<article_id>[0-9]+)$', views.detail)
超連結配置:
1.根目錄urls.py include()第二個引數設定namespace=’blog’ 引數
path('blog/', include('blog.urls', namespace='blog'))
2.blog應用下的urls.py
app_name = 'blog'
urlpatterns = [
re_path(r'^article/(?P<article_id>[0-9]+)$',views.detail, name='article_page')
]
3 .html中
= {% url ‘app_name:url_name’ parame %}
<a href="{% url 'blog:article_page' article.id %}">{{ article.title }}</a>
'blog'= log'
Views.py: 表單提交操作
def add_action(request):
# 獲取前端傳遞過來的文章標題和內容
title = request.POST.get('title', 'Title')
content = request.POST.get('content', 'content')
# 向Article表中插入一條資料l
models.Article.objects.create(title=title, content=content)
# 返回首頁
articles = models.Article.objects.all()
return render(request, 'index.html', {'articles': articles})
表單頁面:{% csrf_token %} post提交的防止python拒絕的標識 {% csrf_
<form action="{% url 'blog:add_action' %}" method="post">
{% csrf_token %}
<input type="text" name="title"/>
<br/>
<textarea name="content" id="" cols="30" rows="10"></textarea>
<br/>
<input type="submit" value="提交">
</form>
編輯部落格和新增部落格頁面共用: 思路修改時文章id是從1開始的,新增id為0
可以以此來判斷
編輯時運算元據庫時 先通過id獲取該文章物件 然後通過物件的屬性修改值 最後執行save()方法
{# django 模板會將不存在的值設定為空值 article.id等為空字串 #}
<input type="hidden" name="article_id" value="{{ article.id | default:'0' }}"/>
增強admin
更多過濾器用法請前往django admin官方文件瞭解
admin.py:
from django.contrib import admin
# Register your models here.
# 配置admin後臺管理系統能操作該應用資料庫
from . import models
# 建立Admin配置類 增強admin 可以調整admin後臺的一些顯示
class ArticleAdmin(admin.ModelAdmin):
# list_display顯示其他欄位 支援列表、元組
list_display = ('id', 'title', 'content', 'create_time')
# 過濾器
list_filter = ('create_time',)
# 註冊
admin.site.register(models.Article, ArticleAdmin)
token %
} post
的防止python拒絕的標識
path('blog/', include('blog.urls', namespace='blog'))
相關文章
- 一篇部落格搞定Django基礎Django
- Django搭建個人部落格:前言Django
- Django搭建個人部落格(二)Django
- 容器編排系統之Kubernetes基礎入門
- Django 部落格新增 Disqus 評論系統Django
- Django搭建個人部落格:基於類的檢視Django
- 基於函式計算快速搭建Django Blog部落格函式Django
- Django2.x搭建部落格Django
- 部落格入門
- python基礎 之 Django框架建立專案的方法入門PythonDjango框架
- 4.DJango部落格之markedownDjango
- 基於ThinkPHP搭建的仿Wordpres個人部落格系統PHP
- 基於函式計算快速搭建Zblog部落格系統函式
- Django搭建個人部落格:編寫部落格文章的Model模型Django模型
- Django搭建個人部落格--使用者的登入和登出Django
- 【個人部落格搭建及配置一】基礎配置
- 基於Vue + Antd 搭建自己的部落格後臺管理系統Vue
- TypeScript 之基礎入門TypeScript
- Django搭建個人部落格:文章標籤功能Django
- 零基礎用GitHub page搭建靜態部落格Github
- 五分鐘搭建部落格系統 OK?
- Django搭建個人部落格:結束和開始Django
- RabbitMQ 入門之基礎概念MQ
- Hadoop 基礎之 HDFS 入門Hadoop
- Django入門案例:圖書管理系統Django
- Github+Jekyll+Netlify 搭建部落格CMS系統Github
- 使用React + Antd 搭建部落格後臺系統React
- Spring Boot搭建輕量級的部落格系統Spring Boot
- Django基礎教程之工程搭建Django
- Django搭建個人部落格:用django-notifications實現訊息通知Django
- Django搭建個人部落格:使用django-ckeditor富文字編輯器Django
- Django搭建個人部落格:在Windows中搭建開發環境DjangoWindows開發環境
- 個人部落格入門4
- Hexo結合Stun靜態部落格搭建從入門到入土Hexo
- Django搭建個人部落格:重置使用者密碼Django密碼
- Django搭建個人部落格:使用者的註冊Django
- Django搭建個人部落格:使用者的刪除Django
- 基於Vue搭建自己的部落格Vue