动态网站: 网站内容会不停改变, 如: 今日头条、抖音
静态网站: 内容基本不改变, 如: 博客
浏览器需要展示商品列表页面
第 1 步,浏览器向 Django 发送 request 请求
第 2 步,Django 收到请求,解析请求,做路由匹配,确定这个请求发给哪个视图函数
第 3 步, 路由匹配结果: 成功或失败
失败,直接返回 404, 代表资源丢失,找不到
成功,继续向下执行对应的功能视图
第 4 步、第 5 步,在视图中,利用模型类,操作数据库,查询商品数据
第 6 步, 此时商品数据已经查询到,需要将数据传递给 模板, 在模板中展示商品数据
第 7 步,将 展示好的商品列表页面,通过 response 响应返回给浏览器,在浏览器展示
打开 cmd 窗口
在 cmd 窗口输入命令
Python
python -V # 测试电脑中的 python 环境是否完整
pip -V # 测试电脑中的 pip 包管理工具是否完整
版本号有就可以
安装基本的依赖包,为了提高安装速度,可以设置 国内代理镜像
Python
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 设置 pip 代理镜像为清华镜像
安装依赖包
下载 requirements.txt
文件
打开文件所在的文件夹,在文件夹的地址栏输入 cmd,打开该文件夹所对应的 cmd 窗口
可以在终端输入 dir
命令,查看当前路径是否存在 ,requirements.txt
文件
在终端输入 pip install -r requirements.txt
, 必须保证当前路径存在 该文件的
然后就会自动联网安装
确定一个存放 Django 项目的文件夹
在文件夹对应的地址栏输入 cmd, 打开对应的 终端窗口
在 cmd 窗口中,输入命令:
Python
django-admin startproject 项目名 # 创建一个 Django 项目
django-admin startproject django01 # 创建 django01 这个项目
使用 pycharm 打开项目时,注意: 打开项目的顶层目录
在 pycharm 中最下面的终端按钮,点击,打开终端
Python
python manage.py runserver 9000 # 启动 Django 服务,并指明端口号为 9000
python manage.py runserver # 如果不跟 9000, 端口号默认为 8000
终端运行项目,需要停止项目,在终端中,使用 ctrl + C 停止服务
使用 pycharm 的 三角形按钮运行项目, 千万不能右键直接 运行
pycharm 也可以修改端口号
打开编辑配置,将端口号 8000, 修改为 9000
Django 项目运行的默认端口号是 8000, 酷狗音乐的端口号默认也是 8000
打开酷狗时,再运行项目,会报错,无法运行
Python
Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
解决方案二选一:
关闭酷狗
把 Django 项目运行的端口号修改为 9000
django 项目无法运行
这类问题,一般是 项目的解释器没有配置,或配置有问题
解决方案:
打开 file --> settings 打开配置项
在右侧的窗口设置解释器即可
Python
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
# BASE_DIR: 当前项目所在的绝对路径
Python
DEBUG = True # 说明当前项目属于调试模式
Python
# 整个项目按照 功能进行划分为不同的模块,每个模块被称为 app, 也被称为子应用
# 后期,自己创建一个 app 之后,需要在这,注册声明,以便 Django 识别
INSTALLED_APPS = [
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
]
Python
# 这两项参数设为中国的语言和时间,也被称为 本地化设置
LANGUAGE_CODE = ‘zh-hans‘ # 修改语言为中文
TIME_ZONE = ‘Asia/Shanghai‘ # 设置时间为中国时间
有两条命令都可以创建app,任选一个即可
Python
python manage.py startapp APP名 # 不能和项目名重名
python manage.py startapp goods # 创建APP goods
django-admin startapp APP名
django-admin startapp goods # 创建APP goods
goods/views.py
Python
from django.http.response import HttpResponse
# Create your views here.
def index(request):
"""
创建视图函数,需要接收请求,返回响应
这个视图,没有模型类,也没有模板
"""
return HttpResponse("今天第一天,大家很努力")
每个视图,想要被客户端请求触发执行,就必须做路由映射
django01/urls.py
Python
from django.contrib import admin
from django.urls import path
from goods.views import index # 从自己的子应用中导入视图函数
# 客户端请求过来,先经过总路由,
# 匹配成功,执行对应的视图函数
# 匹配失败,返回 404 ,找不到
urlpatterns = [
path(‘admin/‘, admin.site.urls),
path(‘‘, index)
# path(网址,视图函数),
# 一定需要和 Vue的路由匹配进行区分:
# Vue的网址必须以 / 开头
# Django的网址 不能以 / 开头, 但是可以以 / 结尾
原文:https://www.cnblogs.com/doomqy/p/14627349.html