Python之Django框架开发博客
生活随笔
收集整理的這篇文章主要介紹了
Python之Django框架开发博客
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先來一張目錄結構圖
1、第一步,必然是向創建目錄啦! ? ,打開命令行,進入想要安置項目的目錄
命令行輸入: django-admin ?startproject myblog
1、博客系統初始界面 ,顯示文章列表和添加新文章按鈕
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>博客</title> </head> <body> <h1><a href ="{% url "blog:edit_page" %}">添加新文章</a></h1> <center> {% for article in articles %}<a href ="{% url "blog:article_page" article.id %}">{{ article.id }}、{{ article.title }}</a><br/><br/> {% endfor %} </center> </body> </html>2、點擊某一文章,進入文章詳情,顯示文章詳情,和修改文章按鈕 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>文章頁面</title> </head> <body> <center><h1>{{ article.title }}</h1><h3>{{ article.content }}</h3> </center> <br><br> <a href ="{% url "blog:reset_action" article.id %}">修改文章</a> </body> </html>3、點擊添加新文章或修改文章都進入 編輯文章界面(修改文章時進入編輯界面需要顯示原有數據)
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>撰寫文章</title> </head> <body> <center><form action="{% url "blog:edit_action" %}" method = "POST">{% csrf_token %}<input type="hidden" name ="id" value = {{ article.id }}><label>文章標題<input type="text" name ="title" value = {{ article.title }}></label><br><br><label>文章內容<input type="text" name ="content" value = {{ article.content }}></label><br><br><label><input type="submit" value ="提交"></label> </form> </center> </body> </html>
接下來開始寫后臺代碼,和一些必要的配置
Django默認使用SQLite,如果你想使用Mysql的話 ?可以直接去我的上一篇文章中進行兩步配置即可 ,傳送門:http://blog.csdn.net/chou_out_man/article/details/75514998
hiahia~~
連接數據庫前先創建model
# -*-coding : UTF-8 -*- from django.db import models #一個model對應數據庫的一張表 # Create your models here. #ORM 對象關系映射 #影藏了數據訪問細節,不需要寫SQL語句 class Article(models.Model):title = models.CharField(max_length=32 )content = models.TextField(null=True)#為了在Django中admin自帶的后臺管理界面直接顯示文章標題 def __str__(self):return self.title人狠話不多,直接上后臺代碼!
在你新建的model的views.py中編寫
# -*-coding = UTF-8 -*- from django.shortcuts import render from . import models from django.http import HttpResponse #每個響應對應一個函數 #每個函數必須返回一個響應 #函數必須有一個參數,一般約定為request #每個響應函數對應一個url#獲取所有文章,返回到指定頁面 def index (request):articles = models.Article.objects.all()return render(request, "blog/index.html", {"articles": articles}) #根據文章編號,獲取文章詳細內容,返回到指定界面 def article_page(request,article_id):article = models.Article.objects.get(id = article_id)return render(request,"blog/article_page.html",{"article" : article}) #接受添加文章請求,跳轉到指定界面 def edit_page(request):return render(request,"blog/article_editpage.html") #編輯文章界面發出的請求 ,獲取文章內容,如果是添加新文章(id為空時,默認為0)則向數據庫插入數據 #如果是修改文章(id!=0),則修改數據庫id對應的文章 def edit_action(request):id = request.POST.get("id")title = request.POST.get("title")content = request.POST.get("content")if(str(id)=="0"):models.Article.objects.create(title=title,content=content)articles = models.Article.objects.all()return render(request,"blog/index.html",{"articles":articles})else :models.Article.objects.filter(id=id).update(title= title,content = content)article = models.Article.objects.get(id = id)return render(request,"blog/article_page.html",{"article" : article}) #接受修改文章請求,根據id修改指定的文章 def reset_action(request,article_id):article = models.Article.objects.get(id=article_id)return render(request,"blog/article_editpage.html",{"article":article})配置url
當然是在項目容器的urls.py中配置啦
但是在實際開發中可能會有能多很多頁面需要配置,所以這里 使用軟鏈接鏈接到應用中在進行實際的配置
在容器中urls.py ? ? ? 注意使用include時需要先進行導入操作
"""myblog URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/1.9/topics/http/urls/ Examples: Function views1. Add an import: from my_app import views2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views1. Add an import: from other_app.views import Home2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf1. Import the include() function: from django.conf.urls import url, include2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin from django.conf.urls import url,include from blog import viewsurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^blog/', include("blog.urls",namespace="blog")) ] 然后再進入應用l的urls.py中進行實際配置from django.conf.urls import urlfrom . import viewsurlpatterns =[url(r'^index/$',views.index),#文章列表頁面url(r'^article/(?P<article_id>[0-9]+)$',views.article_page,name = "article_page"),url(r'^edit/$', views.edit_page , name = "edit_page"),url(r'^edit/action$', views.edit_action , name = "edit_action"),url(r'reset/action/(?P<article_id>[0-9]+)$', views.reset_action,name = "reset_action") ]
接下來,一個超級簡單(沒有注冊、登錄,沒有用戶權限管理、沒有收費的)的博客就大功告成啦!
python manage.py runserver 查看自己的博客ba !
總結
以上是生活随笔為你收集整理的Python之Django框架开发博客的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go语言集合(Map)
- 下一篇: Python3学习笔记(一)简介 、 安