Windows 10 - Django框架 学习总结 1

本文详细介绍了Django框架的使用,包括创建虚拟环境、安装与配置、项目创建、运行Web服务、理解app和url路由、配置文件设置等。通过实例展示了在Windows环境下使用命令行和Pycharm进行操作的步骤,并探讨了数据库连接、静态文件和媒体文件的配置。文章还提到了Django的重要命令如makemigrations、migrate和createsuperuser。

这里是总结 Django 框架的使用经验帖子,下面只是对开发 Django 框架的一个基础学习总结。

目录


测试环境:

操作系统: Window 10
工具:Pycharm

1. Django 框架简介

开源免费的Python语言的 Web应用开发框架,这是最出名的一个框架,第二出名的是 Flask 框架。

1.1 Django 框架的承受能力

基本上可以支持 5000 人同时在线的负载,所以不要以为 Python 语言的 Web 能力不行,当然也不要太过乐观。

2. 基础实操开发步骤演示

2.1 开发工具准备阶段

Pycharm Professional (专业版) 最新版本的都可以——破解的话,其实不用,网上存在一些好心人,有激活码免费提供,如果激活码不行的话,可能被人注册太多次了,失效了,就需要你花点时间去弄破解,当然听说破解版问题挺多的,就看你愿不愿意氪金了,专业版才自带有Django框架,不过这问题不大,其实只要有 Pycharm community (社区版的也可以),后面会有命令行创建 Django 的详解,而且我个人也比较推荐命令行创建,不然自动创建有时候,你都不知道帮你创了哪些东西给你。

2.2 创建运行 Django 框架的虚拟环境

Python 的虚拟环境有三个方案选择

  1. virtualenv
  2. conda
  3. Pipenv 不要用 Pipenv - 知乎劝退链接

conda 和 virtualenv 差不多,但我个人觉得比较好用的是 virtualenv ,这是一个虚拟环境文件夹,可以直接用来打包之类的,转移项目也方便很多。
在这里插入图片描述
Windows 命令行创建 Python 虚拟环境 virtualenv 的指令:

python -m venv 你的项目简称名

这样就可以等下在虚拟环境内创建 Django 项目
注意这里的 hmsys 代指—— house management system

虚拟环境创建好了,一般只有下面 pip list 的这两个包,Django 框架还需要下载安装到虚拟环境内,当然如果是使用 Pycharm 创建的 Django 项目,那就直接帮你安装好了 Django 框架

在这里插入图片描述

pip list

在这里插入图片描述

2.2.1 用命令行安装 django 框架

cd 虚拟环境下的 Scripts 目录下

这样才可以调用虚拟环境内的 pip 指令下载 django 框架

pip install django

在这里插入图片描述

补充说明:pip 指令 与虚拟环境的 Scripts 目录

特别特别注意:如果要使用虚拟环境的 pip 指令,就一定一定必须要到相应的虚拟环境的 Scripts 目录下,用 pip 指令,否则你是不可能使用虚拟环境的 pip 指令的,因为你在别的目录下用的 pip 指令,是本机全局 python 语言运行环境下的 pip 指令,所以你用 pip 指令,如:pip install 安装包名 这样的指令是为本机安装的,而不是为虚拟环境安装的包。如果在没有解决全局 python 环境切换的 bug 问题,就不要因为 activate 激活了虚拟环境,就产生非虚拟环境下Scripts目录下pip 指令,是属于虚拟环境 virutalenv内的 pip 指令的错觉,

补充说明:django-admin 指令 与 Scripts 目录

了解一下就可以了,其实如果不是在 虚拟环境下的 Scirpts 目录,使用 django-admin.exe 指令,那么就是在调用本地的python环境下的 django-admin.exe 指令,但是呢,其实无论是调用本地,还是虚拟环境下的 django-admin.exe 起到的项目创建功能,是一样的,没区别的,不要被activate 指令给弄乱了,也不要因为我这一系列的解释,弄混了 本地的django-admin.exe 指令和虚拟环境内的 django-admin.exe 的作用是有区别的,

2.2.2 具体 Django 框架安装可以看这链接

Django 安装和搭建 virtualenv 虚拟环境(超详细完整步骤)

先说下,目前使用 Django 2.0 版本来开发项目居多,在这里得注意一下 Django 框架的版本,如果是 Django 3.0版本,我个人感觉 bug 比较多

说下安装和卸载的命令:

# 安装 Django 框架 2.0 版本
pip install django==2.0
# 卸载 Djanog 框架 2.0 版本
pip uninstall django==2.0

2.3 如何创建 Django 项目

Django 项目可以不创建虚拟环境,不在虚拟环境内创建 Django 项目,但是后期有点麻烦,所以这里演示一番怎么创建的,但是还是比较建议创建虚拟环境后,在虚拟环境内创建 Django 项目。

Windows:
这里是手动创建一个目录,然后在创建 django 项目,pycharm professional 可以自动创建的,不过一般而言,这里是需要先创建 Django 框架的 Python 虚拟环境,在使用这条命令创建 Django 项目的,个人强烈建议。

2.3.1 Windows 命令行非虚拟环境下创建 Django 项目

在这里插入图片描述

mkdir 创建虚拟环境目录

cd 虚拟环境名

django-admin startproject 项目名

2.3.2 虚拟环境下创建 Django 项目

Pycharm profeesional 内可以直接创建,具体如下
在这里插入图片描述
在这里插入图片描述
结果如下所示,在虚拟环境下的 Script 目录下创建一个名为 Hmsys 的 Django 项目:
在这里插入图片描述

2.3.3 补充说明:推荐使用命令行创建Django项目

关于在虚拟环境 virtualenv 内创建 Django 项目——可以不按照我的思路走,比如说在 虚拟环境下 hmsys内的 Script 目录下创建Django 项目,你都可以在虚拟环境的文件夹内,自己弄一个自己喜欢的文件放自己创建的 Django项目,下面演示一下我找的一个还不错的 Django 项目名和与虚拟环境名的取法,两者联合应用——虚拟环境使用 Django 项目的名字,Django 项目名字定为 config,这样后面直接打包整个虚拟环境就行了。
当然目前我是这样想的,有什么问题也可提出。

django-admin startproject 项目名称
例如 

D:\>cd D:\PythonProject\hmsys

D:\PythonProject\hmsys>django-admin startproject config

D:\PythonProject\hmsys>

在这里插入图片描述
在这里插入图片描述
这样给人的感觉很不错,项目名也没那么容易重复了,virtualenv 虚拟环境名就是项目名,config 配置文件,对项目进行配置,当然这里我只是对于我个人而言感觉较好的,做个笔记,可以自行选择,不必跟风。
在这里插入图片描述
不经意间注意到这 Windows 命令行创建的好处,那就是每次我使用 Pycharm 创建 Django 项目后,想要删除 Django 项目,然后指定创建好的 virtualenv 虚拟环境的 Python 解释器,都会给我自行创建一个(1)(2)(3)…(n),所以这就很烦了,动用 Windows 命令行 创建就不会再出现这种糟糕情况,强迫症福音

推荐使用命令来创建 Django 项目:

django-admin startproject 项目名称

在 Pycharm 工具的设置 setting 里面点击 Python 解释器,选择虚拟环境下的解释器,点击 Apply 或 OK,就不会出现(1)(2)(3)…(n) 的这种情况了,因为不涉及创建 Django 项目,而是选择解释器而已。
在这里插入图片描述

2.3.4 测试下虚拟环境导出依赖包

cd 到虚拟环境的 Script 目录下 activate 进入虚拟环境 hmsys
在这里插入图片描述
导出所需的依赖包(第三方模块)

pip list > D:\PythonProject\hmsys\test.txt

pip freeze > D:\PythonProject\hmsys\requirements.txt

我觉得 pip list 比较好看点,推荐使用 pip list > txt文件绝对路径
在这里插入图片描述

在这里插入图片描述
退出虚拟环境 hmsys

deactivate

在这里插入图片描述
虚拟环境 virtualenv 的创建、删除、退出、快速搭建开发环境链接

2.4 运行Django Web 服务

2.4.1 Windows 命令行运行

步骤
命令行先进入虚拟环境下,激活虚拟环境后再 cd 到 Django 项目下,运行此 Django Web 服务命令
如:

# 进入 hmsys 虚拟环境文件夹内的 Script 文件内,
# 里面存在一个 activate 运行文件
D:\>cd D:\PythonProject\hmsys\Scripts
# 激活虚拟环境 hmsys
activate
# config 是我的 Django 项目名
cd D:\PythonProject\hmsys\config

python manage.py runserver 0.0.0.0:80

在这里插入图片描述在这里插入图片描述

启动 Web 服务命令后,在随意哪种浏览器的URL栏里输入 127.0.0.1

注意:因为这里设置的端口为 80 端口,那么只需要 127.0.0.1,如果设置的是如 8000 这样的端口,那么就需要输入 127.0.0.1:8000,否则无法正确显示,Pycharm 运行 Django 项目默认的是 8000 端口

正常显示结果如下所示:
在这里插入图片描述
错误显示结果如下:
需要加端口
在这里插入图片描述

2.4.2 Pycharm 运行 Django 项目

打开config项目,点击 开始运行 (绿色按钮)
运行后结果:点击蓝色的 127.0.0.1:8000,便会自动弹出浏览器,默认 Microsoft Edge 浏览器
在这里插入图片描述
注意:如果想要用本机的 IP 地址(eg:192.168.1.1,这里可以配置网卡为静态 IP 地址)访问 Django,而不是 127.0.0.1 这样的,那么就需要在 settings.py 文件内找到 ALLOWED_HOSTS = [] 在方框内添加自己本机的 IP 地址,同理想要用 localhost 访问,也是一样,直接添加就可以了,端口不需要,默认自动加。
在这里插入图片描述
补充说明:后面测试下,发现虽然一开始 Pycharm 是用 127.0.0.1:8000 ,默认配置启动 Web 服务,但是后面一旦改了ALLOWED_HOSTS = [] 的配置,就会完全按照这个配置来运行,所以需要加上一个 ‘127.0.0.1’ 否则报错
在这里插入图片描述

2.5 理解 Django 项目的app 和 url 路由

2.5.1 理解、删除、创建 Django 项目的 app

2.5.1.1 理解 Django app、删除 app 等于删除文件夹

Django 中的一个app 就是项目里面的一个应用的意思。一个项目包含多个app
一个app 通常就是一个相对独立的模块 ,实现相对独立的功能。
比如,我们可以把 这个系统的 管理员管理的功能 做在一个名字为 usr 的 app 里面,把 销售人员的操作功能 实现在另外一个名字为
sales 的 app 里面。
一个app 本质上 就是一个 Python 文件夹, 里面包含了一些应用相关的代码文件。

所以删除 app,就等同于删除 app 这个文件夹,不必担心无法删除的情况

通俗点理解:app 在后端显示的是一个特定总的功能栏,能够放其他的一些操作的,比如我弄了一个功能栏,这个主要功能是给一个部门用的,因为这个系统是多个部门共用的,那么就会弄出几个 app 来分别给这几个部门用,比如有两个部门,就大概需要两个 app ,所以就规定了某个 app 功能是给特定部门用的,如销售部的用销售部指定的 app 功能,会计部的用会计部指定的 app 功能,这里会用到一个功能权限管理的操作,先提前说下。

当然,一个项目分成多少个app 这完全取决你的设计。 你把所有的功能都放入一个大app内也可以实现功能,只是这样做,这个app特别的臃肿。
这里说的臃肿类似把 销售人员的日常操作功能放到的会计部门的日常操作功能栏里,这样就很奇怪了,比如 app 叫 统计管理,统计管理里面分了几个子功能 客户报表分析、楼盘销售报表、银行按揭统计、财务统计报表,还有一个 app 叫 客户管理,子功能是 登记客户信息、客户消息、业务提醒、黑名单,那么如果将它们所有的子功能放在一个 app 如 客户管理 app 内,那么就很古怪了。

2.5.1.2 创建 Django 项目的app
2.5.1.2.1 Windows 命令行创建 app

进入项目根目录,执行下面的命令


python manage.py startapp 要创建的app名字

例如创建一个名为 sales 的 app
(hmsys) D:\PythonProject\hmsys\config>python manage.py startapp sales

在这里插入图片描述
在这里插入图片描述

2.5.1.2.2 Pycharm 工具创建 app

点击 Pycharm 的 Tools ,选择 Run manager.py Task… 会弹出一个命令终端出来,在里面输入

startapp 要创建的 app 名字

例如:
startapp sales

在这里插入图片描述
这样就会创建一个目录名为 sales, 对应 一个名为 sales 的app,里面包含了如下自动生成的文件。

 sales/
           __init__.py
           admin.py
           apps.py
           migrations/
               __init__.py
           models.py
           tests.py
           views.py

这个目录其实就是一个python package
在这里插入图片描述
里面有很多文件,后面会分别讲到它们的作用。

特别注意:无论是命令行 或 Pycharm 创建 app 时,在 settings.py 文件这里,都不会自动注册刚创建的 app,需要自己手动添加
如:
在这里插入图片描述

2.5.2 理解 Django 的 url 路由

2.5.2.1 返回 页面内容 给浏览器

当浏览器地址栏中输入网址访问的时候,服务端是如何让浏览器呈现出网页内容的?
是这样的: 当我们输入网址,比如百度网址,比较敲回车后,浏览器会发出http请求给百度的服务器,百度服务器返回 HTML 文档内容给浏览器, 浏览器解析后,呈现出我们最终看到的网页内容。
服务器返回的 HTML 文档内容其实就是 符合 HTML 语法的 一段字符串 而已。
我们现在使用 Django 开发后端服务, 就可以响应浏览器的http请求, 返回一段HTML字符串, 浏览器就可以呈现在界面上了。
刚才我们创建的 sales 应用里面 有个 views.py 文件。 这个文件里面通常是写处理http 请求的代码的。

在这个文件内需要用到的 Django 的 http 模块
注意参数: request
如下例子所示:在 app 的 view.py 文件内创建 listorders() 函数

from django.http import HttpResponse

def listorders(request):
    return HttpResponse("下面是系统中所有的订单信息。。。")
    

注意
这里面最终的返回结果是 HttpResponse 对象的参数字符串 ,也就是这句话

"下面是系统中所有的订单信息。。。"

listorders的参数 request 是 Django 中的 HttpRequest 对象,包含了HTTP请求中的信息

后端程序处理请求,常常要根据请求中的数据进行相应的处理:

比如请求添加一个用户,那么HTTP请求消息中就会携带要添加用户的信息(姓名、登录账号等)

我们写后端的代码,这些信息就在 HttpRequest对象中获取。
所以这个参数非常重要。
HttpRequest 对象的属性和用法,具体可以参考官方文档这里

光是定义了这样一个函数不行的,我们需要 告诉 Django :

当前端发送过来的HTTP请求 url地址 是 /sales/orders/ , 就由 views.py 里面的函数 listorders

来处理怎么告诉Django呢?

这就是 Django中的 url路由设置。

2.5.2.2 url 路由 和 appname.view.py 的不解之缘
2.5.2.2.1 添加路由记录

前面在创建项目目录的时候,在项目的设置目录下,有如下的一个urls.py 文件
在这里插入图片描述
这个文件是 url 路由设置的入口文件

默认的 url 文件内容如下所示:
在这里插入图片描述
要真正的使用路由,向浏览器(客户端),返回服务器(服务端)的HttpResponse 一个响应数据
例如在一个名为 sales 的 app 内的 views.py 文件内,创建如下listorders() 函数

# sales app ——> views.py
from django.http import HttpResponse

def listorders(request):
    return HttpResponse("下面是系统中所有的订单信息。。。")
    

在这里插入图片描述

# config ——> urls.py 主路由
from django.contrib import admin
from django.urls import path

# 别忘了导入 listorders 函数
from sales.views import listorders

urlpatterns = [
    path('admin/', admin.site.urls),

    # 添加如下的路由记录
    path('sales/orders/', listorders),
]

在这里插入图片描述

就是告诉 当前端过来的请求 url地址 是 /sales/orders/ (注意:最后的一个斜杠不能省略) , 就由 views.py 里面的函数 listorders 来处理。

所以,所谓 路由 就是指 : 根据 HTTP 请求的 url 路径, 设置 由哪个 函数来处理这个请求。
通常我们项目代码的修改, Django的测试服务可以自动检测到,并且重新加载,不需要我们重启 Django Web 服务。

如果大家想重新启动 Django web 服务, 大家可以在启动web服务的命令行窗口,按ctrl + break(也就是Pause按钮)先停止服务。 然后再次运行启动命令。
我们这时,就可以登录浏览器输入网址 http://127.0.0.1/sales/orders/ (注意:最后的一个斜杠不能省略)
回车后,就会出现如下内容

上面的引用,我倒是不怎么清楚,会不会自动加载,不过一般而言我是比较建议,代码改了,还是要重启下比较舒服些。

在用 Pycharm 启动 config 项目后,点击蓝色 127.0.0.1:8000 ,会弹出一个报错,这是因为没有设置一个路由的问题,直接在 浏览器的 url 栏内输入 127.0.0.1:8000/sales/orders/
注意端口,需不需要加
还有发现其实可以这样输入的 127.0.0.1:8000/sales/orders
因为浏览器会自动补全 / 斜杠的
在这里插入图片描述

在这里插入图片描述
正确结果如下所示:
在这里插入图片描述

这就是浏览器的请求经过 Django路由后, 选择执行我们定义的函数 listorders,该函数 返回的字符串,
被作为http响应的消息体中的内容返回给 浏览器(客户端)了。

所以浏览器(客户端)最终显示的就是 我们 listorders 函数返回的字符串。

注意:

只要修改了路由表配置,添加了我们自己的路由记录,再去浏览器访问 首页,这里就是 http://127.0.0.1 ,前面曾经出现的小火箭欢迎页就不见了! 会出现一个 404 Not Found 的报错页面。
这是正常的,小火箭欢迎页面 是Django在调试模式下,发现路由记录没有添加的时候,缺省作为首页的。
一旦路由记录发生变动, 就会消失

2.5.2.2.2 总结 urls.py 和 views.py

urls.py 处理请求 requrest,views.py 返回请求处理结果 response。

2.5.2.2.3 路由子表 urls.py 和 主路由表 urls.py

url 路由表就是可以像上面这样,一个请求对应一个处理函数。
但是有的时候,我们的项目比较大的时候, 请求的 url 会特别多。

比如我们的系统提供给 客户、销售商、管理员 访问的 url 是不一样的,如下:

customer/
customer/orders/      

sales/
sales/orders/  

mgr/
mgr/customers/
mgr/medicines/
mgr/orders/

复杂的系统url条目多达几百甚至上千个, 放在一个主路由表 urls.py 文件内,查看时,要找一条路由记录就非常麻烦。

这时,我们通常可以将不同的路由记录 按照功能 分拆到不同的 url 路由子表 文件中。—— app 文件夹内创建一个新的 urls.py 文件

比如,这里我们可以把 访问 的 url 凡是 以 sales 开头的全部都 由 sales app目录下面的 子路由文件 urls.py
处理。

首先我们需要在 sales 目录下面创建一个新的文件 sales\urls.py 。

Pycharm 创建 urls.py 文件:右键点击 app 名字,选择 New ,Python File
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后在这个 sales\urls.py 文件中输入如下内容

# sales ——> urls.py
# 导入 Django 的 urls 模块
from django.urls import path
# 先 sales.urls.py ——> 后 sales.views.py    
# . 代表 当前 app 文件夹内,导入 views.py 文件
from . import views

urlpatterns = [
    path('orders/', views.listorders),
]

然后,我们再修改主 url 路由文件 config/urls.py , 如下

# config ——> urls.py 主路由
from django.contrib import admin

# path 后导入一个include函数
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),

    # 凡是 url 以 sales/  开头的,
    # 都根据 sales.urls 里面的 sales app 的子路由表进行路由查询
    path('sales/', include('sales.urls')),

]

当一个http请求过来时, Django检查 url,比如这里是 sales/orders/,
先到主url路由文件 bysms/urls.py中查看 是否有匹配的路由项。如果有匹配 ( 这里匹配了 sales/ ), 并且匹配的对象 不是 函数, 而是 一个子路由设置 , 比如这里是 include(‘sales.urls’),就会去子路由文件中查看, 这里就是 sales.urls 对应的文件 sales\urls.py 。

注意这时,会从请求url中去掉 前面主路由文件 已经匹配上的部分
(这里是 sales/ 匹配到了则去掉), 将剩余的部分 (这里是 orders/)到子路由文件中—— sales.urls.py 查看是否有匹配的路由项。这里就匹配了 orders/ ,匹配的对象,这里是 views.listorders ,它是一个处理函数,就调用该函数处理该请求。
这个http请求, 将该函数的返回对象 构建 HTTP响应消息,返回给客户端。

2.5.2.3 总结 Django 的路由知识

我理解路由的重点在于:include() 和 函数,有 include 则 查询 对于 app 子路由文件 urls.py ,没有则执行指定的函数,处理请求

2.6 Django 的配置文件 setting.py

后端个人理解

后端开发的本质上就是在传输图片、声音、视频、文本等等的数据,将它们序列化(也就是转变成 二进制 或者 说是字节码,这里转化的过程应该是用到了 Unicode 编码来对这些数据进行一个序列化,Unicode 编码 也被叫做 UTF-8 编码,注意这里的 8 指的是 8 bit (比特) ),这样序列化且转换成 Unicode 编码,可以方便传输数据。
因此,对于这些数据,自然也就是由后端开发来进行数据管理操作——增(INSERT)、删(DELETE)、查(SELECT)、改(UPDATE)
特别要注意的是:图片、声音、视频这类数据比较特殊,所以一般都是统称为资源文件,会单独放在一个单独的目录文件夹内,数据库不会将它们放在数据库里面的,数据库通常都是存储文本类的数据——如资源文件的文件地址(图片、声音、视频文件),其他的文本数据。

初始化过程

下面删除了之前演示的名为 sales 的 app
在这里插入图片描述
urls 路由删除

2.6.1 如何连接 MySQL 数据库及修改格式、时区配置

就目前来说,业界最广泛使用的数据库还是:关系型数据库。

关系型数据库系统,常用的开源数据库有 mysqlpostgresql

建议大家实际工作中使用的时候,使用上面这两种。

如果觉得用MySQL嫌麻烦的话,可以先看 Django框架默认数据库 sqlite 的相关教程:Django 默认的 sqlite 数据库

2.6.1.1 连接 MySQL 数据库配置及数据库引擎的安装
2.6.1.1.1 连接 MySQL 数据库配置

在文件内找到数据库配置,注释 sqlite 数据库默认配置 ,添加 MySQL 数据库的配置

# config.setting.py
# Database
# MySQL 数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 默认
        'NAME': 'hmsys',                # 连接的数据库名
        'USER': 'root',                 # mysql的用户名
        'PASSWORD': 'root@1234',        # mysql的密码
        'HOST': '127.0.0.1',            # mysql的ip地址
        'PORT': 3306,                   # mysql的端口
    }
}
2.6.1.1.2 数据库引擎的安装

虽然配置文件配置好了,但是要想成功使用 MySQL 数据库,就需要安装 MySQL 的数据库引擎 ENGINE,否则会报错。
这里需要使用命令行安装数据库引擎,用 Pycharm 安装挺麻烦的。
这里举例方便理解:进入我之前创建的虚拟环境 hmsys,输入如下命令:

pip3 install pymysql

在这里插入图片描述
然后在 Django 项目下的 init.py 文件内加入如下内容:
目前的示例项目config

# config.__init__.py
"""
setting中的配置默认为sqlite3数据库 当需要修改成MySql时
并且在setting.py的同级目录的__init__.py 加入如下配置
否则会报错: Error loading MySQLdb module.
"""
import pymysql
pymysql.install_as_MySQLdb()

在这里插入图片描述
参考链接:Django 的 MySQL 数据库配置教程

2.6.1.2 修改中文格式、时区的配置
# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/

# 默认 英文 格式
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'  # 设置为中文格式

# 默认时区
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'   # 修改时区

USE_I18N = True

USE_L10N = True

# USE_TZ = True
USE_TZ = False    # 可以被自定义转换
# 在用 MySQL 做数据库,且django设置 USE_TZ=True 时,
# 会遇到一个问题,就是按月份或日期筛选 model 数据时只能得到空集

2.6.2 修改 Static 静态文件路径和 media 上传路径配置

链接:os.path.abspath用法

链接:关于 join 和 os.path.join 的理解

# 定义静态文件所在目录

STATIC_URL = '/static/'
# 报过错的位置 ##
STATIC_ROOT = os.path.join(BASE_DIR, '/static/')
#			#
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), # 绝对路径/static/
)

# 定义上传图片文件所在目录
# 此为指定上传的图片路径前缀
MEDIA_URL = "/media/"
 # 绝对路径 /media/
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 

报过的错:
ERRORS: ?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT settin

os.path.dirname用法

python中的os.path.dirname(file)的使用

静态文件配置参考链接

2.7 Django 框架重要命令 makemigrations、migrate、createsuperuser

makemigrations   # 先把 model 文件,建表的 SQL 语句整理出来 

migrate        # 之后连接数据库成功后,执行整理好的 SQL 语句

createsuperuser  # 创建超级管理员账户

理解 Django 的 makemigrations 和 migrate

Django创建超级管理员

在 Pycharm 里面点击红色框内选项,在下方弹出界面输入 此三个 命令,等同于 python manage.py 命令
在这里插入图片描述
三条命令输入后:打开浏览器,在后面输入 admin/
就会弹出一个用户登录界面
在这里插入图片描述
用户密码,就是 createsuperuser 时配置的账号和密码,密码随意,只要到时 y 就行了,邮箱随意。在这里插入图片描述

结果如下:
在这里插入图片描述
好了,Django 框架的基本使用方法,还有坑的总结就差不多这样了,后续会再补充下其他的。

                                            END         

参考链接

Django开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值