Heim  >  Artikel  >  Backend-Entwicklung  >  Python verwendet Django, um ein eigenes Blogsystem zu entwickeln

Python verwendet Django, um ein eigenes Blogsystem zu entwickeln

高洛峰
高洛峰Original
2017-02-25 11:17:142094Durchsuche

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 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

Wir müssen die zugrunde liegende Logikverarbeitung in dieser Datei definieren. Dadurch wird bestimmt, welche Art von Antwort an den Benutzer zurückgegeben wird. Verschwenden Sie keine unnötige Zeit damit, welche Rendering-Methode Sie verwenden sollten. render_to_response ist genug.


# create the view for blog show

def myBlogs(request):
 blog_list = BlogPost.objects.all()
 return render_to_response('BlogTemplate.html',{'blog_list':blog_list})

Hier wird eine Vorlagendatei verwendet und ein Listentypparameter an die Vorlage übergeben, auf den wir später noch eingehen werden.

•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),
]

In Bezug auf die Zuordnung enthält mein letzter Artikel eine detaillierte Einführung. PyCharm entwickelt die Grundkonfiguration von Django. Interessierte können darauf verweisen. Okay, dieses Mal können wir unser Programm ausführen, nachdem wir die Einstellungen des Admin-Administratorbenutzers abgeschlossen haben.

python manage.py runserver

erscheint:

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.

Sie können es dann im Browser eingeben

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.

Damit ist die Einrichtung unseres Blogsystems abgeschlossen. Da jedoch keine Stile hinzugefügt werden, sieht es nicht besonders gut aus. Deshalb werden wir die folgenden Vorlagenstile hinzufügen.

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按钮,开始添加你的博文吧。

Python verwendet Django, um ein eigenes Blogsystem zu entwickeln

Python verwendet Django, um ein eigenes Blogsystem zu entwickeln

然后在浏览器中输入
http://www.php.cn/:8000/myBlogs/.你就可以看到你的博客列表了,如图

Python verwendet Django, um ein eigenes Blogsystem zu entwickeln

大家可能已经看到了,问题就出在点击标题没有进入到相关的详情页面,那是因为还没有添加这个功能呢。(^__^) 嘻嘻……

总结

今天一起做了一个简单的博客系统,虽然外观看起来并不是很好看,但是内容什么的差不多就是这样了。还有很多的地方需要完善。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。

更多Python verwendet Django, um ein eigenes Blogsystem zu entwickeln相关文章请关注PHP中文网!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn