ずっと自分でブログシステムを構築したいと思っていたのですが、ネットで調べてみるとNode.jsの知識が必要なようで、ライブラリもたくさんインストールする必要があるのでやりたくありません。触って。しかし、Django のような成果物に遭遇し、私のブログ システムがこのように確立されるとは予想していませんでした。もっともベーシックなタイプですが。ただし、このブログは Django をある程度理解している子供に適しています。初心者の場合は、実験を行う前に Django の基本的な知識を確認することをお勧めします。もっと効率的な!
それでは、早速始めましょう。
フレームワークを構築する
•プロジェクトとアプリケーションを作成する
フレームワークを構築するとは、Django をインストールし、関連する構成を行うことを意味します。 PyCharm で作成したため、ツールが多くのことを行ってくれました。ただし、最下層は次のコード行にすぎません:
MyDjango という名前の Django プロジェクトを作成します
django-admin startproject MyDjango
MyBlog という名前の Django アプリケーションを作成します。ここで、アプリケーションはプロジェクトのサブセットに属していることに注意してください。平たく言えば、アプリケーション フォルダーはプロジェクト フォルダーのサブセットとして存在します。
django-admin startapp MyBlog
•データベースと基礎となるモデルを作成します
もちろん、自分でカスタマイズすることもできます。つまり、sqlite3 は必要なデータベースのニーズを満たすことができます。 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':'', } }
データベースが構築されたら、次のステップはモデルを作成することです。ブログ システムを作成しているので、ブログに関するコンテンツを公開することが不可欠なので、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
管理者は公開されたブログを管理する必要があるため、公開されたブログの管理モデルをセットアップする必要があります。
# set the admin page for BlogPost class BlogPostAdmin(admin.ModelAdmin): list_display = ('title','timestamp') # register the model (especially important admin.site.register(BlogPost)
そのため、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 # set the admin page for BlogPost class BlogPostAdmin(admin.ModelAdmin): list_display = ('title','timestamp') # register the model (especially important admin.site.register(BlogPost)
次のステップは、データベースとモデル間の接続を同期することです。同期操作を実行しない場合、
django.db.utils.OperationalError:Cannot open Database file
が報告される可能性が高く、これも非常に重要なリンクです。これは、私が以前に遭遇した Django バージョンの問題です。
django < 1.7:
python manage.py syncdb
django > 1.7: python manage.py makemigrations
python manage.py merge
完璧な MVC モデル
実際、前のステップに関する限り、モデル モジュールの機能はすでに完了しています。次のステップはビューをマップすることです。
•V (views.py) ビューレイヤー
# 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(コントローラー)urls.py
このファイルは、Django のさまざまな部分の疎結合された機能を結合し、プロジェクト全体の動作の非コアを完成すると言えます。論理処理をマッピングする方法についてです。次にブログシステムをセットアップします。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 と入力できるようになり、[編集済み] の下にある [ブログ投稿] をクリックできます。ブログ投稿。次に、「保存」ボタンをクリックしてブログを公開します。次に、ブラウザに
http://127.0.0.1:8000/myBlogs/ と入力して、ブログ システムにアクセスします。
テンプレート構成
接着刚才的继续,关于模板,这里面可谓是有着很深的设计哲学。了解过的大家肯定都会有感触,我就不多说了。
接下来就为我们的博客系统设置一下模板吧。
•父模板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 は Django を使用して独自のブログ システムを開発します相关文章请关注PHP中文网!