django基础入门之搭建博客系统
Django基礎
Django采用了MVC的軟件設計模式,即模型M,視圖V和控制器C。
? ? ? ? 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表中插入一條數據lmodels.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基础入门之搭建博客系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BMP图片加马赛克C语言C++超简单
- 下一篇: 基于Go语言Gin+Xorm+Layui