<label id="mtoxv"></label>
  • <li id="mtoxv"></li>
  • <thead id="mtoxv"></thead>\r\n

    XX博文<\/h1>\r\n

    小生不才,但求簡約!<\/h3>\r\n{% block content %}\r\n{% endblock %}\r\n<\/body>\r\n<\/html><\/pre>

    <\/p>

    ?然后就是子模板BlogTemplate.html<\/p>

    <\/p>

    {% extends \"base.html\" %}\r\n {% block content %}\r\n  {% for post in blog_list %}\r\n   

    {{ post.title }}<\/h2>\r\n   

    {{ post.timestamp }}<\/p>\r\n   

    {{ post.body }}<\/p>\r\n  {% endfor %}\r\n {% endblock %}<\/pre>

    <\/p>\n

    需要注意的就是模板中的模板標(biāo)簽以及模板變量都應(yīng)該與views.py文件對應(yīng)的函數(shù)中的字典變量相一致,否則django雖然不會報錯,但也是不會顯示數(shù)據(jù)的。?
    <\/p>\n

    接下來刷新一下,輸入http:\/\/127.0.0.1:8000\/admin\/<\/span><\/p>\n

    點(diǎn)擊add按鈕,開始添加你的博文吧。
    <\/p>\n

    \"Python<\/p>\n

    \"Python<\/p>\n

    然后在瀏覽器中輸入
    http:\/\/m.miracleart.cn\/:8000\/myBlogs\/<\/code>.你就可以看到你的博客列表了,如圖
    <\/p>\n

    \"Python<\/p>\n

    大家可能已經(jīng)看到了,問題就出在點(diǎn)擊標(biāo)題沒有進(jìn)入到相關(guān)的詳情頁面,那是因?yàn)檫€沒有添加這個功能呢。(^__^<\/em>) 嘻嘻……<\/p>\n

    總結(jié)<\/strong><\/p>\n

    今天一起做了一個簡單的博客系統(tǒng),雖然外觀看起來并不是很好看,但是內(nèi)容什么的差不多就是這樣了。還有很多的地方需要完善。<\/p>\n

    以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持PHP中文網(wǎng)。<\/p>\n

    更多Python utilise Django pour développer son propre système de blog相關(guān)文章請關(guān)注PHP中文網(wǎng)!<\/p>"}

    国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

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

    Feb 25, 2017 am 11:17 AM
    django python Système de blog

    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 = {
     &#39;default&#39;: {
      &#39;ENGINE&#39;: &#39;django.db.backends.sqlite3&#39;,
      &#39;NAME&#39;: &#39;MyBlog.db&#39;,
      &#39;USER&#39;:&#39;&#39;,
      &#39;PASSWORD&#39;:&#39;&#39;,
      &#39;HOST&#39;:&#39;&#39;,
      &#39;PORT&#39;:&#39;&#39;,
     }
    }

    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 = (&#39;title&#39;,&#39;timestamp&#39;)
    
    
    # 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 = (&#39;title&#39;,&#39;timestamp&#39;)
    
    
    # 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 < 1.7?: 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(&#39;BlogTemplate.html&#39;,{&#39;blog_list&#39;: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&#39;^admin/&#39;, admin.site.urls),
     url(r&#39;^myBlogs/$&#39;,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 &#39;MyDjango.settings&#39;
    Starting development server at http://m.miracleart.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

    接著剛才的繼續(xù),關(guān)于模板,這里面可謂是有著很深的設(shè)計(jì)哲學(xué)。了解過的大家肯定都會有感觸,我就不多說了。
    接下來就為我們的博客系統(tǒng)設(shè)置一下模板吧。
    ?父模板base.html
    按照django對模板的繼承設(shè)置,我們可以制作一個父模板。如下:

    <!DOCTYPE html>
    <html lang="zh">
    <head>
     <meta charset="UTF-8">
     <title>標(biāo)題</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 %}

    需要注意的就是模板中的模板標(biāo)簽以及模板變量都應(yīng)該與views.py文件對應(yīng)的函數(shù)中的字典變量相一致,否則django雖然不會報錯,但也是不會顯示數(shù)據(jù)的。?

    接下來刷新一下,輸入http://127.0.0.1:8000/admin/

    點(diǎn)擊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://m.miracleart.cn/:8000/myBlogs/.你就可以看到你的博客列表了,如圖

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

    大家可能已經(jīng)看到了,問題就出在點(diǎn)擊標(biāo)題沒有進(jìn)入到相關(guān)的詳情頁面,那是因?yàn)檫€沒有添加這個功能呢。(^__^) 嘻嘻……

    總結(jié)

    今天一起做了一個簡單的博客系統(tǒng),雖然外觀看起來并不是很好看,但是內(nèi)容什么的差不多就是這樣了。還有很多的地方需要完善。

    以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持PHP中文網(wǎng)。

    更多Python utilise Django pour développer son propre système de blog相關(guān)文章請關(guān)注PHP中文網(wǎng)!

    Déclaration de ce site Web
    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

    Outils d'IA chauds

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

    Article chaud

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Sujets chauds

    Tutoriel PHP
    1502
    276
    Python Seaborn JointPlot Exemple Python Seaborn JointPlot Exemple Jul 26, 2025 am 08:11 AM

    Utilisez le plot conjoint de Seaborn pour visualiser rapidement la relation et la distribution entre deux variables; 2. Le tracé de diffusion de base est implémenté par sn.jointplot (data = pointes, x = "total_bill", y = "Tip", kind = "dispers"), le centre est un tracé de dispersion et l'histogramme est affiché sur les c?tés supérieur et inférieur et droit; 3. Ajouter des lignes de régression et des informations de densité à un kind = "reg" et combiner marginal_kws pour définir le style de tracé de bord; 4. Lorsque le volume de données est important, il est recommandé d'utiliser "Hex"

    Python List to String Conversion Exemple Python List to String Conversion Exemple Jul 26, 2025 am 08:00 AM

    Les listes de cha?nes peuvent être fusionnées avec la méthode join (), telles que '' .join (mots) pour obtenir "HelloworldFrompython"; 2. Les listes de nombres doivent être converties en cha?nes avec MAP (STR, nombres) ou [STR (x) Forxinnumbers] avant de rejoindre; 3. Toute liste de types peut être directement convertie en cha?nes avec des supports et des devis, adaptées au débogage; 4. Les formats personnalisés peuvent être implémentés par des expressions de générateur combinées avec join (), telles que '|' .join (f "[{item}]" ForIteminitems)

    Python Connexion à SQL Server PyoDBC Exemple Python Connexion à SQL Server PyoDBC Exemple Jul 30, 2025 am 02:53 AM

    Installez PYODBC: utilisez la commande PiPInstallpyodbc pour installer la bibliothèque; 2. Connectez SQLServer: utilisez la cha?ne de connexion contenant le pilote, le serveur, la base de données, l'UID / PWD ou TrustEd_Connection via la méthode pyoDBC.Connect () et prendre en charge l'authentification SQL ou l'authentification Windows respectivement; 3. Vérifiez le pilote installé: exécutez pyodbc.Drivers () et filtrez le nom du pilote contenant ?SQLServer? pour vous assurer que le nom du pilote correct est utilisé tel que ?ODBCDriver17 pour SQLServer?; 4. Paramètres clés de la cha?ne de connexion

    Python pandas fondre l'exemple Python pandas fondre l'exemple Jul 27, 2025 am 02:48 AM

    pandas.melt () est utilisé pour convertir les données de format larges en format long. La réponse consiste à définir de nouveaux noms de colonne en spécifiant id_vars conserver la colonne d'identification, Value_Vars Sélectionnez la colonne à fondre, var_name et valeur_name, 1.id_vars = 'name' signifie que la colonne de nom reste inchangée, 2.Value_vars = [Math ',' English ',' Science '. du nom de colonne d'origine, 4.value_name = 'score' définit le nouveau nom de colonne de la valeur d'origine et génère enfin trois colonnes, notamment le nom, le sujet et le score.

    Python django forme l'exemple Python django forme l'exemple Jul 27, 2025 am 02:50 AM

    Définissez d'abord un formulaire ContactForm contenant le nom, la bo?te aux lettres et les champs de message; 2. De l'avis, la soumission du formulaire est traitée en jugeant la demande de poste, et après la vérification, nettoyée_data est obtenue et la réponse est retournée, sinon le formulaire vide sera rendu; 3. Dans le modèle, utilisez {{form.as_p}} pour rendre le champ et ajouter {% csrf_token%} pour empêcher les attaques CSRF; 4. Configurer le routage d'URL vers Point / Contact / vers la vue Contact_View; Utilisez Modelform pour associer directement le modèle pour obtenir un stockage de données. Djangoforms implémente le traitement intégré de la vérification des données, le rendu HTML et les invites d'erreur, qui convient au développement rapide des fonctions de forme s?re.

    Optimisation de Python pour les opérations liées à la mémoire Optimisation de Python pour les opérations liées à la mémoire Jul 28, 2025 am 03:22 AM

    PythonCanBeoptimizedFormemory-Boundoperations AdreductoverHeadHroughGenerators, EfficientDatastructures et ManagingObjectliFetimes.first, useGeneratorsInSteadofListStoproceSlargedataseSeItematatime, EvitingLoadingEnteryToMeToMeMory.

    Qu'est-ce que l'arbitrage statistique dans les crypto-monnaies? Comment fonctionne l'arbitrage statistique? Qu'est-ce que l'arbitrage statistique dans les crypto-monnaies? Comment fonctionne l'arbitrage statistique? Jul 30, 2025 pm 09:12 PM

    L'introduction à l'arbitrage statistique L'arbitrage statistique est une méthode commerciale qui capture l'inadéquation des prix sur le marché financier basé sur des modèles mathématiques. Sa philosophie principale découle de la régression moyenne, c'est-à-dire que les prix des actifs peuvent s'écarter des tendances à long terme à court terme, mais reviendront éventuellement à leur moyenne historique. Les traders utilisent des méthodes statistiques pour analyser la corrélation entre les actifs et rechercher des portefeuilles qui changent généralement de manière synchrone. Lorsque la relation de prix de ces actifs est anormalement déviée, des opportunités d'arbitrage se présentent. Sur le marché des crypto-monnaies, l'arbitrage statistique est particulièrement répandu, principalement en raison de l'inefficacité et des fluctuations drastiques du marché lui-même. Contrairement aux marchés financiers traditionnels, les crypto-monnaies fonctionnent 24h / 24 et leurs prix sont très susceptibles de briser les nouvelles, les sentiments des médias sociaux et les améliorations technologiques. Cette fluctuation des prix constante crée fréquemment un biais de prix et fournit aux arbitrageurs un

    Python iter et exemple suivant Python iter et exemple suivant Jul 29, 2025 am 02:20 AM

    Iter () est utilisé pour obtenir l'objet Iterator, et Next () est utilisé pour obtenir l'élément suivant; 1. Utilisez Iterator () pour convertir des objets itérables tels que les listes en itérateurs; 2. Appelez Next () pour obtenir des éléments un par un et déclenchez l'exception de l'arrêt lorsque les éléments sont épuisés; 3. Utilisez Suivant (iterator, par défaut) pour éviter les exceptions; 4. Les itérateurs personnalisés doivent implémenter les méthodes __iter __ () et __Next __ () pour contr?ler la logique d'itération; L'utilisation de valeurs par défaut est un moyen courant de parcourir la traversée et l'ensemble du mécanisme est concis et pratique.

    See all articles