文章目录
01 项目创建
1.1地址配置
先启动虚拟环境+打开宝塔的界面
注意一下之前跟着视频安装的mysql版本是5.5,现在要改成安装8.0。
在网站子菜单栏中选择添加站点
设置内容忘记截图了,记得截图一下数据库的用户和密码。
用户:blog
密码:同宝塔
点击根目录后copy一下根目录的路径:/www/wwwroot/MyBlog
在vscode中打开上述路径的文件夹
然后我们就发现之前配置过的虚拟环境不能继续使用了
我们再回到宝塔里修改一下网站目录
找到我们之前在桌面上创建的Django文件夹,新建一个www文件夹及myBlog文件夹,选定myBlog,保存
同时修改www文件夹的权限
再次回到vs code里,打开Django文件夹,激活虚拟环境
切换至www文件夹下,之后使用pip3 list
确认Django版本号是否为3.2.4
然后,我们把原来的myBlog文件夹删除掉,使用django-admin startproject config
新建一个django项目并且等会儿再将它改名为myBlog,最后得到的效果是这样的
cd myBlog/
python manage.py runserver
之后又会得到一个一样的网站
## 1.2 创建app
python manage.py startapp blog
保证在有manage.py文件的目录下执行
然后在config下的setting文件夹中添加我们刚刚创建的app
1.3 创建超级管理员
在创建超级管理员应该先同步数据库
python manage.py migrate
然后创建超级管理员
python manage.py createsuperuser
然后输入网址:http://127.0.0.1:8000/admin/login/?next=/admin/
,正确输入用户名和密码之后会出现以下页面
1.4 修改后台语言
在setting中找到如下位置,将en-us
修改为zh-hans
保存+刷新网页之后
也可以修改时区
LANGUAGE_CODE = 'zh-hans' # en-us
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
1.5 创建表
修改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.6 添加到后台
修改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")
同步到数据库
刷新网页之后
2 修改页面逻辑
2.1 添加页面模板文件夹
修改view.py
这个文件主要是页面展示之类的用途
from django.shortcuts import render
# Create your views here.
def index(request):
return render(request, "index.html")
在myBlog下面创建一个templates的子文件夹,用于存放我们之后所有的模板
修改setting.py中如下:
先import os
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',
],
},
},
]
修改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文件
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"),
]
重启刷新后出现
2.2 添加文章详情页面
新建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"),
]
03 部署
3.1 安装 PyMysql
3.2 修改 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()