Django:快速搭建简单的Blog

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一,创建项目

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
弹性计算 安全 JavaScript
零基础部署一个Django Blog到Serverless架构
本场景介绍如何将Django Blog项目部署到函数计算平台
|
存储 SQL 前端开发
Django Blog | 10 自定义Form,美化页面并实现文章编辑功能
Django Blog | 10 自定义Form,美化页面并实现文章编辑功能
611 0
Django Blog | 10 自定义Form,美化页面并实现文章编辑功能
|
SQL 前端开发 JavaScript
Django Blog | 09 这么简单!实现博客markdown输入和显示
Django Blog | 09 这么简单!实现博客markdown输入和显示
708 0
Django Blog | 09 这么简单!实现博客markdown输入和显示
|
开发工具 数据库 git
|
数据库 数据安全/隐私保护 Python
|
前端开发 JavaScript Python
|
前端开发 关系型数据库 数据库
Django架设blog步骤(转)
最近在研究Python,起初是因为想做个爬虫,昨天看了点基础教程,台湾辅仁大学的视频,了解了python的语法规范及语言特性,主要有三: 1.动态脚本语言; 2.语法简洁,强制缩进; 3.应用广泛,web、系统管理、脚本、科学计算等等,第三方应用多;   下面开始正文,Django是Python时间中数一数二的web框架,由3个小伙创建,名字来源于一个吉他手(看3人的照片,叛逆青年类型,取这个名也就不奇怪了)。
1328 0
|
关系型数据库 数据库 Python
django开发Blog(1)
(一)创建项目 django-admin.py startproject mysite 运行这个命令时,需要django-admin.py在PATH环境变量中 我的django-admin.py在 Django目录\Django-1.
870 0
|
Python 数据安全/隐私保护
django开发Blog(2)
(一)设置自动admin应用 打开settings.py的INSTALL_APPS中的'django.contrib.auth'下面添加 'django.contrib.auth','django.
684 0