部署Django项目

解决数据可视化项目Django创建和使用的问题

一、创建项目

方式一:使用命令行 (cmd) 创建项目

1. 选择位置

先选择一个一个存放项目的位置,直接使用盘符名+” : “切换盘符,使用 cd 命令切换到指定的文件夹。

2. 创建Django项目

接着使用以下命令创建Django项目,如下所示:

django-admin startproject Django_Demo  # mysite是项目名,可自定义

在当前目录下会生成 mysite 的工程,目录结构如下:

django数据可视化怎么写 django数据可视化实战项目_爬虫

manage.py -- Django项目里面的工具,通过它可以调用django shell和数据库等。

settings.py -- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。

urls.py -- 负责把URL模式映射到应用程序。

3. 在mysite目录下创建应用

使用 cd 命令切换到 mysite 目录中,并输入以下命令:

python manage.py startapp app  # app01为应用名,可自定义

应用 ” app01“ 的目录结构如下:

django数据可视化怎么写 django数据可视化实战项目_爬虫_02

4. 启动 django 项目

启动 django 项目的命令如下所示:

python manage.py runserver 8080   # 8080 为默认端口

若正常启动,则会出现以下界面:

django数据可视化怎么写 django数据可视化实战项目_django数据可视化怎么写_03

这时,我们的 django 就启动起来了,我们访问 " 127.0.0.1:8080/ " 时,我们就可以看到如下界面:

django数据可视化怎么写 django数据可视化实战项目_layui_04

方式二:使用PyCharm创建项目

打开PyCharm,点击 “ File” --> " New Project",然后选择新建Django项目,并参考下图进行设置:

django数据可视化怎么写 django数据可视化实战项目_爬虫_05

设置好后,点击 “ Create ” 即可创建Django项目,创建后的项目目录与之前使用 cmd 命令创建的Django项目是一致的,如下图所示:

django数据可视化怎么写 django数据可视化实战项目_layui_06

我们同样打开浏览器,访问 “ 127.0.0.1:8000/ ”,会看到和上面一样的Django的欢迎界面。

出现的报错解决措施

1.输入runserver启动失败显示账号密码错误等信息

解决方法:打开settings.py文件配置数据库信息

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': '数据库名字',
    'USER': '数据库用户名',
    'PASSWORD': '数据库密码', 
    'HOST': '连接的数据库ip地址',
    'PORT': '3306',  
  }
}

2.输入runserver启动失败显示

File "D:\Python\python\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query
    query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'

解决方法:点击报错进入对应的报错文档,把encode改成decode就可以了。

或者把decode改成encode就可以了

这是因为在python3中,编码的时候区分了字符串和二进制

3.将django改成中文显示

解决方法:打开settings.py文件配置时区信息

# 把英文改为中文
LANGUAGE_CODE = 'zh-hans'

# 把国际时区改为中国时区
TIME_ZONE = 'Asia/Shanghai'

二、部署前端网页

一、部署Django文件配置

1.将创建好的项目名称在settings.py中添加进去

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

2.创建一个文件夹media用于存放上传及下载的文件,,创建一个static文件夹用于存放静态资源,和项目同级,打开settings.py在末尾添加

STATIC_URL = '/static/'

# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

X_FRAME_OPTIONS = 'ALLOWALL url'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

X_FRAME_OPTIONS = 'ALLOWALL url’用于前端的ifram嵌套,不加网页不能嵌套

然后在__init_.py中添加

import pymysql
pymysql.install_as_MySQLdb()

1.登录时显示

禁止访问 (403)

CSRF验证失败. 请求被中断.

您看到此消息是由于该站点在提交表单时需要一个CSRF cookie。此项是出于安全考虑,以确保您的浏览器没有被第三方劫持。

如果您已经设置浏览器禁用cookies,请重新启用,至少针对这个站点,全部HTTPS请求,或者同源请求(same-origin)启用cookies。

解决方法:打开settings.py文件禁用csrf(如下红框)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K8kMfSDr-1642583201945)(C:\Users\15872\Desktop\Temporary\编程md\Django.assets\image-20220115162435621.png)]

二、链接html子页面到index主页面

1.在index主页面上写入


标签指定url


home/console.html即为templates文件夹下的html文件路径

<div class="layui-logo" lay-href="home/console.html">
  <span>可视化系统</span>
</div>

2.在django的app项目文件夹下的url.py指定url路径

from django.contrib import admin
from django.urls import path
from djangodemo.demo import view
urlpatterns = [
	path('home/console.html', view.console),
]

3.在view.py文件下写入页面重定向函数console指向html文件

from django.shortcuts import render, redirect
def console(request):
    return  render(request, "home/console.html")

三、将数据库数据传入前端页面

四、修改Django部署项目的网站title图标

只需在首页页面标签放入这段代码即可

{% load staticfiles %}
<link rel="shortcut icon" href="{%static "picture/favicon.ico" %}">

picture/favicon.ico 为自己staticfiles指定的路径文件夹下的ico图片位置,例如我的staticfiles文件夹指定的是static文件夹,我就在static下picture文件夹下放入favicon.ico图标。

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),)