예전부터 나만의 블로그 시스템을 구축하고 싶었지만 인터넷으로 검색해 보니 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: Could not open Database file
이 보고될 가능성이 매우 높으며, 이 역시 매우 중요한 링크입니다. 이것이 Django 버전의 문제입니다. 이전에 이 문제를 겪은 적이 있습니다.
django < 1.7:
python prepare.py syncdb
django > > python 관리.py makemigrations
python 관리.py 마이그레이션
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(controller)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/myBlogs/를 입력하여 블로그 시스템에 액세스하세요.
이로써 블로그 시스템 구축이 완료되었습니다. 그런데 스타일이 추가되지 않아서 별로 보기에 좋지 않아서 다음과 같은 템플릿 스타일을 추가해 보겠습니다.
接着刚才的继续,关于模板,这里面可谓是有着很深的设计哲学。了解过的大家肯定都会有感触,我就不多说了。 •然后就是子模板BlogTemplate.html 需要注意的就是模板中的模板标签以及模板变量都应该与views.py文件对应的函数中的字典变量相一致,否则django虽然不会报错,但也是不会显示数据的。 接下来刷新一下,输入http://127.0.0.1:8000/admin/ 点击add按钮,开始添加你的博文吧。 然后在浏览器中输入 大家可能已经看到了,问题就出在点击标题没有进入到相关的详情页面,那是因为还没有添加这个功能呢。(^__^) 嘻嘻…… 总结 今天一起做了一个简单的博客系统,虽然外观看起来并不是很好看,但是内容什么的差不多就是这样了。还有很多的地方需要完善。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。 更多Python은 Django를 사용하여 자체 블로그 시스템을 개발합니다.相关文章请关注PHP中文网!
接下来就为我们的博客系统设置一下模板吧。
•父模板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>
{% extends "base.html" %}
{% block content %}
{% for post in blog_list %}
<h2>{{ post.title }}</h2>
<p>{{ post.timestamp }}</p>
<p>{{ post.body }}</p>
{% endfor %}
{% endblock %}
http://www.php.cn/:8000/myBlogs/
.你就可以看到你的博客列表了,如图