【Django】网站搭建

时间:2022-12-09 09:55:05


1打开宝塔命令

sudo /etc/init.d/bt default

2 创建站点


3 修改路径


4 激活环境


5 创建 APP

python manage.py startapp blog

将新建的 APP 和项目进行关联

修改的文件名是 settings.py

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

7.创建超级管理员

python manage.py createsuperuser

但是在创建前应该先同步数据库,不然回报错


python manage.py migrate

创建成功


8.修改后台语言,将英文修改成中文


LANGUAGE_CODE :语言代码,

TIME_ZONE:时区

9.创建表

修改 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

添加到后台

修改 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")

11.同步数据库

python manage.py makemigrations
python manage.py migrate

注意一行一行的输入


12 .不显示阅读次数


这里编写,然后同步的


修改


这个[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7mHmdhfs-1624784794075)(D:\jupyter_file\Datawhale\第26期学习\Django\My_jc\task2_.assets\image-20210627145504176.png)]

变成了 下面 显示这个[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ciBokc2l-1624784794077)(D:\jupyter_file\Datawhale\第26期学习\Django\My_jc\task2_.assets\image-20210627145434874.png)]

编写页面逻辑

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 文件

<html>
<head>
<title>我的首页</title>
</head>

<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>
</html>


添加文章详情页面

新建 content.html

<html>
<head>
<title>我的首页</title>
</head>

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

<div>
{{blog.content}}
</div>

</body>
</html>

编写业务逻辑 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"),

]


te.urls),
path("", index, name=“index”),
path(“read/int:id”, read_blog, name=“read_blog”),

]

<img src="D:\jupyter_file\Datawhale\第26期学习\Django\My_jc\task2_.assets\image-20210627160234868.png" alt="image-20210627160234868" style="zoom:50%;" />