一,创建项目

我这里是基于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:

http://192.168.52.129:9099/blog/