日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

django基础入门之搭建博客系统

發布時間:2024/1/8 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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表中插入一條數據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基础入门之搭建博客系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。