Maison  >  Article  >  développement back-end  >  Python utilise Django pour développer son propre système de blog

Python utilise Django pour développer son propre système de blog

高洛峰
高洛峰original
2017-02-25 11:17:142108parcourir

Je voulais créer mon propre système de blog depuis longtemps, mais après avoir cherché sur Internet, il semble que cela nécessite des connaissances sur Node.js et l'installation de nombreuses bibliothèques, etc., donc je ne veux pas pour le toucher. Mais j'ai rencontré un artefact comme Django, et je ne m'attendais pas à ce que mon système de blog soit établi comme ça. Bien que ce soit le type le plus basique. Mais cela peut être considéré comme une réussite. Ce blog est plus adapté aux enfants qui ont une certaine compréhension de Django. Si vous êtes novice, il est recommandé de jeter un œil aux connaissances de base de Django avant de faire des expériences, qui seront. plus efficace !

Bien, sans plus tarder, commençons.

Construire un framework
•Créer des projets et des applications

Construire un framework signifie installer Django et faire le Bien configuration pertinente. Parce que je l'ai créé sous PyCharm, les outils ont fait beaucoup de choses pour moi. Mais la couche inférieure n'est rien de plus que les lignes de code suivantes :

Créez un projet Django nommé MyDjango

django-admin startproject MyDjango

Créez une application Django nommée MyBlog. Il convient de noter ici que la candidature appartient à un sous-ensemble du projet. En termes simples, les dossiers d'application existent en tant que sous-ensemble des dossiers de projet.

django-admin startapp MyBlog

•Créer une base de données et un modèle sous-jacent

J'utilise simplement la base de données sqlite3 par défaut comme base de données de mon système de blog. Bien sûr, vous pouvez également personnaliser la base de données dont vous avez besoin. De manière générale, sqlite3 peut répondre aux besoins. Vous pouvez le configurer comme ceci dans settings.py.

# 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':'',
 }
}

Une fois la base de données construite, l'étape suivante consiste à créer le modèle. Parce que je crée un système de blog, il est essentiel de publier du contenu sur le blog, j'ai donc besoin d'attributs tels que le titre, le contenu et l'heure de publication. Des détails tels que le fichier 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


Étant donné que des administrateurs sont nécessaires pour gérer les blogs publiés, nous devons mettre en place un modèle de gestion des blogs publiés,


# set the admin page for BlogPost

class BlogPostAdmin(admin.ModelAdmin):
 list_display = ('title','timestamp')


# register the model (especially important

admin.site.register(BlogPost)


Donc, l'intégralité du fichier models.py devrait ressembler à ceci.

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)

L'étape suivante consiste à synchroniser la connexion entre la base de données et le modèle. Si vous n'effectuez pas d'opérations de synchronisation, il est très probable que

django.db.utils.OperationalError: impossible d'ouvrir le fichier de base de données
sera signalé, et c'est aussi un lien très important. C'est le problème avec la version Django que j'ai déjà rencontré.

django python manage.py syncdb

django > > python manage.py makemigrations python manage.py migrate

Amélioration du modèle MVC

En fait, par rapport au précédent étapes, nous avons terminé les fonctions du module de modèle et l'étape suivante consiste à cartographier les vues.


•Couche de vue V (views.py) Nous devons définir le traitement logique sous-jacent dans ce fichier. Cela détermine le type de réponse renvoyée à l'utilisateur. Quant à la méthode de rendu à utiliser, ne perdez pas de temps inutile là-dessus. render_to_response suffit.


# create the view for blog show

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

Un fichier modèle est utilisé ici et un paramètre de type de liste est transmis au modèle, dont nous discuterons plus tard.

•C(controller)urls.pyOn peut dire que ce fichier connecte ensemble les fonctions faiblement couplées de diverses parties de Django , et c'est terminé. Le cœur non essentiel du fonctionnement de l'ensemble du projet est le traitement de la logique de mappage. Ensuite, nous allons configurer notre système de blog.

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

Concernant la façon de mapper, mon dernier article a une introduction détaillée, PyCharm développe la configuration de base de Django. Ceux qui sont intéressés peuvent s'y référer. D'accord, cette fois, après avoir terminé les paramètres de l'utilisateur administrateur, nous pouvons exécuter notre programme.

python manage.py runserver

apparaît :

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.

Vous pouvez ensuite le saisir dans le navigateur

http://127.0.0.1:8000/admin Une fois connecté, vous pouvez cliquer sur Articles de blog ci-dessous pour modifier les articles de blog. Cliquez ensuite sur le bouton ENREGISTRER pour publier notre blog. Ensuite, entrez

http://127.0.0.1:8000/myBlogs/ dans le navigateur pour accéder à notre système de blog.

Cela complète la mise en place de notre système de blog. Mais comme aucun style n’est ajouté, cela n’a pas l’air très bien, nous allons donc ajouter les styles de modèle suivants.

Configuration du modèle

接着刚才的继续,关于模板,这里面可谓是有着很深的设计哲学。了解过的大家肯定都会有感触,我就不多说了。
接下来就为我们的博客系统设置一下模板吧。
 •父模板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 utilise Django pour développer son propre système de blog

Python utilise Django pour développer son propre système de blog

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

Python utilise Django pour développer son propre système de blog

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

总结

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

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

更多Python utilise Django pour développer son propre système de blog相关文章请关注PHP中文网!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn