django - task2

创建 APP
python manage.py startapp blog
保证在有 manage.py 文件的目录下执行

  1. 将新建的 APP 和项目进行关联
    修改的文件名是 settings.py

INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘blog’,
]

最后一行的 blog 就是我们刚刚创建的 APP

  1. 创建超级管理员
    python manage.py sreatesuperuser
    但是在创建前应该先同步数据库

python manage.py migrate

根据提示进行输入。成功后可以看到如下画面:

  1. 修改后台语言
    LANGUAGE_CODE = ‘zh-hans’

TIME_ZONE = ‘UTC’

USE_I18N = True

USE_L10N = True

USE_TZ = True

LANGUAGE_CODE :语言代码,

TIME_ZONE:时区

  1. 创建表
    修改 models.py 文件

from django.db import models

Create your models here.

class Blog(models.Model):
title = models.CharField(max_length=50, verbose_name=“标题”)
content = models.TextField(verbose_name=“文章内容”, default="")
count = models.IntegerField(verbose_name=“阅读次数”, default=0)
creat_time = models.DateTimeField(auto_now=True, verbose_name=“创建时间”)

class Meta:
    verbose_name = '博客管理'
    verbose_name_plural = verbose_name

def __str__(self):
    return self.title
  1. 添加到后台
    修改 admin.py

from django.contrib import admin

from .models import Blog

Register your models here.

@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
list_display=(“title”, “creat_time”, “count”)

  1. 同步到数据库
    python manage.py makemigrations
    python manage.py migrate
    注意一行一行的输入

编写页面逻辑

  1. 添加页面模板文件夹
    修改 settings.py 文件

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’,
],
},
},
]
在添加 os.path.join(BASE_DIR, “templates”)前记得先经 os 库导入进来

修改 views.py 文件

from django.shortcuts import render

Create your views here.

def index(request):
return render(request, “index.html”)

修改 urls.py 文件

from os import name
from django.contrib import admin
from django.urls import path
from blog.views import index
urlpatterns = [
path(‘admin/’, admin.site.urls),
path("", index, name=“index”),

]

将我们定义的方法引入进来,然后定义好访问什么路径来执行这个方法

在 templates 文件夹下创建一个 html 文件

我的首页
<body>
    <h1>欢迎来到我的网站!</h1>
    <ul>
        {% for blog in blogs %}
        <li>
            <a href="{% url 'read_blog' blog.id %}">{{blog.title}}</a>
        </li>
        <p>创建于    {{blog.creat_time}}</p>

        {% endfor %}
        
    </ul>
</body>
访问页面后看到如下效果,表示成功

添加文章详情页面
新建 content.html

我的首页
<body>
    <a href="/" style="float: right;">回到首页</a>
    <h1>{{blog.title}}</h1>

    <div>
        {{blog.content}}
    </div>
    
</body>
编写业务逻辑 views.py

def read_blog(request,id):
print(f"{id}:我是通过前端点击链接来的")
blog = Blog.objects.get(id=id)
return render(request, “content.html”, {“blog”:blog})
修改 urls.py

pass
urlpatterns = [
path(‘admin/’, admin.site.urls),
path("", index, name=“index”),
path(“read/int:id”, read_blog, name=“read_blog”),

]

部署
安装 PyMysql

修改 Settings.py 文件
pass

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘blog’,
‘USER’: ‘blog’,
‘PASSWORD’: ‘你的密码’,
‘HOST’: ‘虚拟机的IP’,
‘PORT’: ‘3306’,
}
}
修改__init__.py 文件
import pymysql

pymysql.install_as_MySQLdb()

发布于: 2021 年 06 月 19 日
阅读数: 81
版权声明: 本文为 InfoQ 作者【IT蜗壳-Tango】的原创文章。

原文链接:【https://xie.infoq.cn/article/3e2894c5da49e582519ef652a】。

本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值