一,创建项目
我这里是基于python虚拟环境下做的开发,
先进入虚拟环境
workon py3_django
1, 为blog创建名为mysite的工程项目
django-admin.py startproject mysite
2.创建app应用
cd到项目文件夹 cd mysite
python manage.py startapp blog
3.创建mysql数据库
mysql进到mysql数据库服务器里,创建my_blog数据库
4.创建static templates等目录
5.配置settings.py文件
数据库的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST':'localhost',
'NAME': 'my_blog',
'PORT':3306,
'USER':'root',
'PASSWORD':'123456',
templates模板配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'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',
],
},
},
]
static静态文件的配置
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static')
]
配置admin管理后台的中文显示的配置
LANGUAGE_CODE = 'zh-Hans'
注册应用的配置
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
)
6.设计模型层
在blog目录下的models.py是blog应用的核心文件之一,是定义blog数据结构的地方。
用编辑器打开models.py
新添加BlogPost类,代码如下:
from django.db import models
# Create your models here.
class BlogPost(models.Model):
title = models.CharField(max_length=30,verbose_name='标题')
content = models.TextField()
pub_time = models.DateTimeField()
class Meta:
ordering = ('-pub_time',)
添加后台管理的显示部分配置admin.py文件
from django.contrib import admin
# from django.db import models
from .models import *
class BlogPostamdin(admin.ModelAdmin):
list_display = ['title','pub_time']
admin.site.register(BlogPost,BlogPostamdin)
7,迁移数据库
生成迁移文件
python manage.py makemigrations
执行迁移
python manage.py migrate
以为执行完之后,在mysql数据库里会生成一张表blogpost
8.配置views视图函数和模板文件
views.py视图函数配置
from django.shortcuts import render
from .models import *
def blog(request):
allpost = BlogPost.objects.all()
return render(request, 'blog/archive.html', locals())
父模板文件base.html编写
<html>
<style type="text/css">
body{color:#efd;background:#453;padding:0 5em;margin:0}
h1{padding:2em 1em;background:#675}
h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}
p{margin:1em 0}
</style>
<body>
<h1>my blog</h1>
{% block content %}
{% endblock %}
</body>
</html>
archive.html文件继承于父模板base.html文件,内容如下:
{% extends 'base.html' %}
{% block content %}
{% for post in allpost %}
<h2> ` post`.`title `</h2>
<p>{{ post.pub_time |date:"F jS" }}</p>
<p>` post`.`content `</p>
{% endfor %}
{% endblock content %}
最后配置urls.py
先配置总的urls.py在配置二级urls
from django.conf.urls import include, url
from django.contrib import admin
from blog import urls
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/', include('blog.urls')),
]
在blog目录下配置urls.py(需要自己新建urls.py文件)
from django.conf.urls import url
from .views import *
urlpatterns = [
url(r'^$',blog),
]
最后在管理后台添加文章
启动django服务:
python manage.py runserver 0.0.0.0:9099
访问blog: