目录

启动前注意事项

django基本操作命令

 命令行与pycharm的区别

PyCharm 方式

创建Django项目

与命令行创建项目方式的区别

 启动Django项目

创建应用

静态文件配置

  静态文件资源接口配置

 静态文件接口请求原理

静态文件实例

HTML 文件动态解析静态文件路径

常见问题

TypeError: unsupported operand type(s) for /: ‘str‘ and ‘str

 PyCharm 修改已经生成的 Django 项目的端口

 后端代码修改了,但是前端页面没有任何变化


启动前注意事项

  1. 计算机的名称,以及文件路径不要出现中文;(编码问题)
  2. 一个窗口只开启一个 Django 项目;
  3. python 解释器尽量使用 3.4~3.6 版本;

Django 下载版本推荐 .2.2.22 版本

验证 Django 是否安装成功:在终端中输入django-admin命令,看看是否有反应

Windows 电脑会默认在 C 盘中创建

可以在命令行中先切换路径,再创建。注意路径中尽量不要包含中文

命令行创建不会自动创建templates文件夹,需要手动创建,并且将文件夹的路径在settings.py中手动处理

 具体处理方式参照下方 PyCharm 创建的方法

django基本操作命令

获取django版本

        py -m django --version

创建项目
        打开命令行,cd到想要创建的目录下,然后运行下边代码
        django-admin startproject mysite

创建app
        切到创建的项目目录下
        python manage.py startapp polls

启动项目
        切到创建的项目目录下
        python manage.py runserver

 命令行与pycharm的区别


命令行不会自动创建templates文件夹
命令行不会在配置文件编写关于templates文件夹的配置
‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)]
pycharm自动创建的第一个应用会自动注册到配置文件中
针对db.sqlite3文件不用去在乎它有没有创建 只要运行了django会自动出来

-mysite文件夹名称 

mysite同名文件夹
settings.py  项目配置文件
urls.py  总路由层
manage.py  项目入口文件
db.sqlite3    运行项目后自动创建(django自带的小型数据库)
templates文件夹  存储HTML文件
 应用文件夹   通过命令创建(可以创建任意个数)
migrations文件夹   存储数据迁移记录
admin.py   django提供的后台管理
apps.py    用于配置文件的应用注册(创建的应用都需要去配置文件中注册)
models.py  模型层(与数据库相关)
views.py  视图层(编写当前应用核心业务逻辑代码)
tests.py   自带的测试文件

urls.py 路由层
views.py 视图层
templates 模板层
models.py 模型层

PyCharm 方式

创建Django项目

与命令行创建项目方式的区别

创建成功后与命令行方式创建对比

多了一个templates文件夹,在settings.py文件中PyCharm 方式会自动处理路径

相当于:

'DIRS': [os.path.join(BASE_DIR , 'templates')],


 

至于PyCharm 自动创建templates文件夹的方式,在于创建项目的时候会默认创建

同时,如果下面的Application name填入名称,会自动创建一个应用,并且应用会自动注册

 启动Django项目

 

 

创建应用

方式一:命令行方式创建,pycharm 自带有Terminal

 方式二:PyCharm 工具栏 Tools–Run Manage.py Task

静态文件配置

我们将 HTML 文件默认放在templates文件夹下;将网站所使用的的静态文件放在static文件夹下。

静态文件:前端已经写好的,能够直接调用的文件

已经写好的网站 js 文件、CSS 文件、图片文件、第三方的前端框架

Django 是不会自动创建static文件夹的,需要我们手动创建

可以直接将第三方框架直接放入 static文件夹下,也可以再建一个other文件夹存放。

  静态文件资源接口配置

普通的功能接口,需要在urls.py中先做路由与视图的关联,再在视图层中写功能;

静态文件资源的配置就不需要那么麻烦!

settings.py文件中需要手动书写配置,注意变量名全大写

# 拼接 static 文件夹路径,并且放入列表中
STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static'),
  os.path.join(BASE_DIR, 'static1'),
  os.path.join(BASE_DIR, 'static2'),
]

 静态文件接口请求原理

settins.py中,我们能够发现一个变量STATIC_URL

STATIC_URL = '/static/'

那么这里的'/static/'和我们手写的配置中最终拼接的static文件夹名有何关联呢?

对于我们拼接出的STATICFILES_DIR中的路径来说,毫无疑问的,就是静态文件所处的路径!

对于STATIC_URL来说,后面的'/static/'相当于一种访问令牌,即 当访问的 URL 路径中包含了'/static/'时,Django 会自动地将URL 路径'/static/'后的字符 当做资源来查找,查找的路径就是我们手写STATICFILES_DIR列表中的路径,并且顺序是从前到后,查找到会立即返回,不会继续查找也就意味着STATIC_URL 可以随意修改,只要在请求资源的时候,按照修改后的方式,再加上资源名,同样可以请求到.

静态文件实例

settins.py

STATIC_URL = '/static/'

STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static'),
  os.path.join(BASE_DIR, 'static1'),
  os.path.join(BASE_DIR, 'static2'),
]

static文件夹a.txt

from static

static1文件夹a.txt

from static1

static2文件夹a.txt

from static2

启动 Django 项目,并且请求资源

 

 调换一下顺序, 并且修改一下令牌

STATIC_URL = '/xxx/'

STATICFILES_DIRS = [
  os.path.join(BASE_DIR, 'static2'),
  os.path.join(BASE_DIR, 'static1'),
  os.path.join(BASE_DIR, 'static'),
]

HTML 文件动态解析静态文件路径

在 HTML 文件中,需要导入的静态文件很多的时候,如果修改了STATIC_URL,那么每一个静态文件路径的前缀都要修改,十分麻烦

 

 动态解析语法

	{% load static %}
	<link rel="stylesheet" href="{% ‘ 文件名 ’ %}">
	<script src="{% ‘ 文件名 ’ %}"></script>

文件名会从STATICFILES_DIRS的路径中依次寻找

常见问题

1. TypeError: unsupported operand type(s) for /: ‘str‘ and ‘str

Django新建app时,报TypeError: unsupported operand type(s) for /: ‘str‘ and ‘str‘ 错误

报错提示:

解决方法:

点击最后一行的报错信息,定位

/ 改成,

 2. PyCharm 修改已经生成的 Django 项目的端口

3. 后端代码修改了,但是前端页面没有任何变化

有可能,同一个端口开启了好几个项目。比如用命令行和 pycharm 分别开启了,但是pycharm 的代码修改了,依然是按照命令行的方式运行的,所以保证一个项目不要同时被开启

最为常见的还是浏览器缓存的情况了

首先,右键-检查

 勾选上之后,只要再次打开控制台时,点击页面刷新就会清除浏览器的缓存

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐