django入门教程(二)简单的博客系统
来源:互联网 发布:卖店铺淘宝客软件 编辑:程序博客网 时间:2024/05/01 10:53
之前写了django的入门教程,最近有开始要写django了,所以就接着之前的更新了,这篇博客的内容是利用django构建一个简单的博客系统。
django 1.8.3 python 2.7.9
第一步创建工程:
django-admin.py startproject mysite
创建app blog
manage.py startapp blog
创建超级用户
manage.py createsuperuser django123
迁移
manage.py makemigrationsmanage.py migrate
准备工作已经完成了。现在开始处理细节部分
配置mysite文件夹下的settings.py
# -*- coding:utf-8 -*-"""Django settings for mysite project.Generated by 'django-admin startproject' using Django 1.8.3.For more information on this file, seehttps://docs.djangoproject.com/en/1.8/topics/settings/For the full list of settings and their values, seehttps://docs.djangoproject.com/en/1.8/ref/settings/"""# Build paths inside the project like this: os.path.join(BASE_DIR, ...)import osBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# Quick-start development settings - unsuitable for production# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret!SECRET_KEY = 'pek#c0ur%jtm)&8c6mbn99n#jigvbm=h0%eg#^(-bdmezvp%)q'# SECURITY WARNING: don't run with debug turned on in production!DEBUG = TrueALLOWED_HOSTS = []# Application definitionINSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog')MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware',)ROOT_URLCONF = 'mysite.urls'TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR,'templates').replace('\\','/'),], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, },]WSGI_APPLICATION = 'mysite.wsgi.application'# Database# https://docs.djangoproject.com/en/1.8/ref/settings/#databasesDATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }}# Internationalization# https://docs.djangoproject.com/en/1.8/topics/i18n/LANGUAGE_CODE = 'zh_CN'TIME_ZONE = 'PRC'USE_I18N = TrueUSE_L10N = TrueUSE_TZ = True# Static files (CSS, JavaScript, Images)# https://docs.djangoproject.com/en/1.8/howto/static-files/STATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static').replace('\\','/'),)
主要配置的几个地方就是,INSTALLED_APPS中添加你的app,这里添加‘blog’,TEMPLATES中得到DIRS增加你的模板文件夹templates的路径,DATABASES暂时用不到mysql,所以不用改变,然后就是时区的问题了,LANGUAGE_CODE = ‘zh_CN’,TIME_ZONE = ‘PRC’把语言更改成中文。
开启django自带的服务器
manage.py runserver
在浏览器中访问127.0.0.1:8000/admin,结果页面如下
可以看到页面已经是中文了。
利用之前创建的超级用户账户和密码,登录
登录进去后的页面
配置到这里就已经完成了,现在开始构建简易博客系统的细节。在这里首先谈一下django的MVC设计模式,M表示model,也就是数据模型,django自动为我们隔绝了数据库的底层操作,直接在models.py文件中用函数表示一个二维表;V表示views,其实就是网站的逻辑层,views.py中的函数输入参数为访问请求request,输入渲染后的html文件,然后由服务器返回给客户端浏览器;C,就是根据浏览器的url地址访问“模型”获取数据,并调用“视图”显示这些数据,暂时不用管它。
先来看一下我们的目的,我们是要构建一个简易博客系统,那么首先我们是要往这个博客系统上面发表内容,一个内容简单来说可以包含时间、主体、标题,这些其实就是数据,那么根据刚才所说的M,其实就是要构建一个二维表,这个表有时间、主体、标题这三个字段。下面是models.py中的blogPost函数表示的二维表代码:
# -*- coding:utf-8 -*-from django.db import models# Create your models here.class blogPost(models.Model): title = models.CharField(max_length=150,verbose_name=u'标题') body = models.TextField(verbose_name=u'正文') timestamp = models.DateField(verbose_name=u'发表时间') class Meta: verbose_name_plural = u'博客'
已经构建好数据模型了,那么现在要构建这个博客系统的逻辑层了。我们想要的效果是,当我们访问博客主页的时候,我们在主页上显示一个博客列表。我么先来设计博客主页的url:127.0.0.1:8000/blog就可以了,然后我们设计views中的函数blog_home来对这个url访问请求作出反应。
设计url:
先在mysite中的urls.py中添加app博客的系列url
urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^blog/',include('blog.urls')),]
然后blog中的urls.py:
# -*- coding:utf-8 -*-from django.conf.urls import url,includefrom views import blog_homeurlpatterns = [ url(r'^$',view=blog_home,name='home'),]
views.py
from django.shortcuts import render,render_to_responsefrom models import blogPost# Create your views here.def blog_home(request): c = {} blog_list = blogPost.objects.all() c['posts'] = blog_list return render_to_response('blog/home.html',c)
最后就是模板的实现了,模板如下:
<html><head lang="zh_CN"> <!--//引用css文件--> <link href="/static/blog/css/home.css" media="screen" rel="stylesheet" type="text/css" /></head><body> <h1 id="head">我的第一个django简易博客系统</h1> {% for post in posts %} <div class="blog"> <h2 >{{post.title}}</h2> <p>{{post.timestamp}}</p> <p>{{post.body}}</p> </div> {% endfor %}</body></html>
这里使用了简单的css布局。最后效果如下:
- django入门教程(二)简单的博客系统
- python Django 搭建简单的个人博客网站(二)
- django实战(二)一个较完整的博客系统
- 基于Django搭建简单的博客系统
- Python学习笔记24:Django搭建简单的博客网站(二)
- Django实例----简单的博客
- Git简单入门教程(二)
- Django博客开发(十三)—一个简单的站内搜索
- python Django 搭建简单的个人博客网站(一)
- python Django搭建简单的个人博客网站(三)
- Express入门教程:一个简单的博客
- Express入门教程:一个简单的博客
- Express入门教程:一个简单的博客
- Express入门教程:一个简单的博客
- Django开发自己的博客系统
- Django完整的开发一个博客系统
- Javaweb简单博客系统-----(二)数据库建表
- swing入门教程(二) 简单的swing小部件
- myFocus插件实现图片轮播
- win10系统安装oracle11g时遇到INS-13001环境不满足最低要求
- iOS前端与后台交互技术实现及技术细节
- NSMutableAttributedString
- 向glide致敬,自己写Gif动图加载框架
- django入门教程(二)简单的博客系统
- 成为Java高手的25个学习要点
- 每天一个linux命令-rm
- Java设计模式(三):工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- java输出所有的字符编码
- S-Function 使用及应用举例
- WIN7X64自定义硬断
- Servlet中获取ServletContext(jsp中application)
- win7添加打印机