> 백엔드 개발 > 파이썬 튜토리얼 > Python은 Django를 사용하여 자체 블로그 시스템을 개발합니다.

Python은 Django를 사용하여 자체 블로그 시스템을 개발합니다.

高洛峰
풀어 주다: 2017-02-25 11:17:14
원래의
2156명이 탐색했습니다.

예전부터 나만의 블로그 시스템을 구축하고 싶었지만 인터넷으로 검색해 보니 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) 뷰 레이어

이 파일에서 기본 논리 처리를 정의해야 합니다. 이는 사용자에게 어떤 종류의 응답이 반환되는지를 결정합니다. 어떤 렌더링 방법을 사용할 것인지에 대해 불필요한 시간을 낭비하지 마십시오. render_to_response이면 충분합니다.


# 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})
로그인 후 복사

여기서는 템플릿 파일을 사용하고, 목록 유형 매개변수가 템플릿에 전달되는데 이에 대해서는 나중에 설명하겠습니다.

•C(controller)urls.py

이 파일은 Django의 다양한 부분의 느슨하게 결합된 기능을 함께 연결하는 파일이라고 할 수 있습니다. , 그리고 완료됩니다. 전체 프로젝트의 운영 중 핵심이 아닌 핵심은 매핑 로직의 처리입니다. 다음으로 블로그 시스템을 설정하겠습니다.

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),
]
로그인 후 복사

매핑 방법에 대해서는 지난 글에서 자세히 소개했는데, PyCharm은 Django 기본 구성을 개발합니다. 관심있는 분들은 참고하시면 됩니다. 좋습니다. 이번에는 admin 관리자 사용자 설정을 완료한 후 프로그램을 실행할 수 있습니다.

python Manage.py runserver

표시:

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

Python은 Django를 사용하여 자체 블로그 시스템을 개발합니다.

Python은 Django를 사용하여 자체 블로그 시스템을 개발합니다.

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

Python은 Django를 사용하여 자체 블로그 시스템을 개발합니다.

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

总结

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

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

更多Python은 Django를 사용하여 자체 블로그 시스템을 개발합니다.相关文章请关注PHP中文网!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿