Ich wollte schon lange mein eigenes Blog-System erstellen, aber nach einer Suche im Internet scheint es, dass dafür einige Kenntnisse über Node.js und die Installation so vieler Bibliotheken usw. erforderlich sind, also möchte ich nicht es zu berühren. Aber ich bin auf ein solches Artefakt wie Django gestoßen und hätte nicht erwartet, dass mein Blog-System so etabliert werden würde. Obwohl es der einfachste Typ ist. Dieser Blog ist jedoch eher für Kinder geeignet, die über ein gewisses Verständnis von Django verfügen. Wenn Sie Anfänger sind, wird empfohlen, einen Blick auf die grundlegenden Wissenspunkte von Django zu werfen effizienter!
Okay, ohne weitere Umschweife, fangen wir an.
Ein Framework erstellen
•Projekte und Anwendungen erstellen
Ein Framework erstellen bedeutet, Django zu installieren und Gutes zu tun entsprechende Konfiguration. Da ich es unter PyCharm erstellt habe, haben die Tools viele Dinge für mich erledigt. Aber die unterste Ebene besteht aus nichts weiter als den folgenden Codezeilen:
Erstellen Sie ein Django-Projekt namens MyDjango
django-admin startproject MyDjango
Erstellen Sie eine Django-Anwendung mit dem Namen MyBlog. Hierbei ist zu beachten, dass die Anwendung zu einer Teilmenge des Projekts gehört. Laienhaft ausgedrückt sind Anwendungsordner eine Teilmenge von Projektordnern.
django-admin startapp MyBlog
•Datenbank und zugrunde liegendes Modell erstellen
Ich verwende einfach die Standard-SQLite3-Datenbank als Datenbank meines Blog-Systems. Natürlich können Sie die Datenbank, die Sie benötigen, auch anpassen. Sie können es so in Setting.py einrichten.
# Database # https://docs.djangoproject.com/en/1.9/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'MyBlog.db', 'USER':'', 'PASSWORD':'', 'HOST':'', 'PORT':'', } }
Nachdem die Datenbank erstellt wurde, besteht der nächste Schritt darin, das Modell zu erstellen. Da ich ein Blog-System erstelle, ist es wichtig, Inhalte über den Blog zu veröffentlichen, daher benötige ich Attribute wie Titel, Inhalt und Veröffentlichungszeitpunkt wie die Datei models.py
from __future__ import unicode_literals from django.contrib import admin from django.db import models # create the blog model class BlogPost(models.Model): title = models.CharField(max_length=150) body = models.TextField() timestamp = models.DateTimeField() def __unicode__(self): return self.title
Da Administratoren verpflichtet sind, veröffentlichte Blogs zu verwalten, müssen wir ein Verwaltungsmodell für veröffentlichte Blogs einrichten,
# set the admin page for BlogPost class BlogPostAdmin(admin.ModelAdmin): list_display = ('title','timestamp') # register the model (especially important admin.site.register(BlogPost)
Die gesamte models.py-Datei sollte also so aussehen.
from __future__ import unicode_literals from django.contrib import admin from django.db import models # create the blog model class BlogPost(models.Model): title = models.CharField(max_length=150) body = models.TextField() timestamp = models.DateTimeField() def __unicode__(self): return self.title # set the admin page for BlogPost class BlogPostAdmin(admin.ModelAdmin): list_display = ('title','timestamp') # register the model (especially important admin.site.register(BlogPost)
Der nächste Schritt besteht darin, die Verbindung zwischen der Datenbank und dem Modell zu synchronisieren. Wenn Sie keine Synchronisierungsvorgänge durchführen, ist es sehr wahrscheinlich, dass
django.db.utils.OperationalError: Datenbankdatei konnte nicht geöffnet werden
gemeldet wird, und dies ist auch ein sehr wichtiger Link. Das ist das Problem mit der Django-Version, auf das ich schon einmal gestoßen bin.
django < 1.7:
python manage.py syncdb
django > 1.7: python manage.py makemigrations
python manage.py migrate
Verbesserung des MVC-Modells
Tatsächlich im Hinblick auf das Vorherige Schritte: Wir haben die Funktionen des Modellmoduls abgeschlossen und der nächste Schritt besteht darin, die Ansichten zuzuordnen.
•V (views.py) Ansichtsebene
# create the view for blog show def myBlogs(request): blog_list = BlogPost.objects.all() return render_to_response('BlogTemplate.html',{'blog_list':blog_list})
•C(controller)urls.py
Man kann sagen, dass diese Datei die lose gekoppelten Funktionen verschiedener Teile von Django miteinander verbindet , und es ist abgeschlossen. Der nicht zum Kern gehörende Kern des Betriebs des gesamten Projekts ist die Verarbeitung der Zuordnungslogik. Als nächstes richten wir unser Blog-System ein.from django.conf.urls import url from django.contrib import admin from MyBlog.views import * urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^myBlogs/$',myBlogs), ]
Performing system checks... System check identified no issues (0 silenced). June 05, 2016 - 11:39:27 Django version 1.9.6, using settings 'MyDjango.settings' Starting development server at http://www.php.cn/:8000/ Quit the server with CTRL-BREAK.
http://127.0.0.1:8000/admin Nach erfolgreicher Anmeldung können Sie unten auf Blog-Beiträge klicken, um Blog-Beiträge zu bearbeiten. Klicken Sie dann auf die Schaltfläche SPEICHERN, um unseren Blog zu veröffentlichen. Geben Sie als Nächstes
http://127.0.0.1:8000/myBlogs/ in den Browser ein, um auf unser Blogsystem zuzugreifen.
Vorlagenkonfiguration
接着刚才的继续,关于模板,这里面可谓是有着很深的设计哲学。了解过的大家肯定都会有感触,我就不多说了。
接下来就为我们的博客系统设置一下模板吧。
•父模板base.html
按照django对模板的继承设置,我们可以制作一个父模板。如下:
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>标题</title> </head> <style type="text/css"> body{ color: #efd; background: #BBBBBB; padding: 12px 5em; margin:7px; } h1{ padding: 2em; background: #675; } h2{ color: #85F2F2; border-top: 1px dotted #fff; margin-top:2em; } p{ margin:1em 0; } </style> <body> <h1>XX博文</h1> <h3>小生不才,但求简约!</h3> {% block content %} {% endblock %} </body> </html>
•然后就是子模板BlogTemplate.html
{% extends "base.html" %} {% block content %} {% for post in blog_list %} <h2>{{ post.title }}</h2> <p>{{ post.timestamp }}</p> <p>{{ post.body }}</p> {% endfor %} {% endblock %}
需要注意的就是模板中的模板标签以及模板变量都应该与views.py文件对应的函数中的字典变量相一致,否则django虽然不会报错,但也是不会显示数据的。
接下来刷新一下,输入http://127.0.0.1:8000/admin/
点击add按钮,开始添加你的博文吧。
然后在浏览器中输入 http://www.php.cn/:8000/myBlogs/
.你就可以看到你的博客列表了,如图
大家可能已经看到了,问题就出在点击标题没有进入到相关的详情页面,那是因为还没有添加这个功能呢。(^__^) 嘻嘻……
总结
今天一起做了一个简单的博客系统,虽然外观看起来并不是很好看,但是内容什么的差不多就是这样了。还有很多的地方需要完善。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。
更多Python verwendet Django, um ein eigenes Blogsystem zu entwickeln相关文章请关注PHP中文网!