Python学习第十五天

Django

概念

        Django 最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发。以下内容简要介绍了如何使用 Django 实现一个数据库驱动的网络应用。(Django是一个开放源代码的第三方模块Web应用框架,并且是一个功能全,重量的框架。Flask框架是一个轻量级功能少,从github上搜索python web项目基本都出来的是django和flask项目)

        学习文档可以使用:官网教程

安装

        因为django是一个第三方模块并非内置所以需要安装(类似于mysqlclient)。

django安装

检查是否安装:

import django
# 不报错即引入了
print(django.get_version(),django.VERSION)

安装:

# 安装的5.1.7的版本可以通过官网查询对应的新版本
pip install django==5.1.7

虚拟环境安装

 1. 为什么要安装虚拟环境

  • 项目 A 需要 Django 3.2。

  • 项目 B 需要 Django 5.1.7。

  • 如果没有虚拟环境,这两个项目的依赖会冲突。

2. 创建虚拟环境

# 创建虚拟环境 最后的参数是你的这个虚拟环境的名称 
python -m venv venv

# 激活进入虚拟环境
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate

# 退出虚拟环境
deactivate

新建Diango项目

Cmd创建
# django-amdin startproject 项目名称
django-admin startproject myproject
# 启动 注意不要在虚拟环境下启动 这个是cmd命令的 如果是虚拟环境要退出deactivate  
# 访问即可 http://127.0.0.1:8000/
cd myproject
python manage.py runserver

目录结构

|-- myProject           # 项目的容器
	|-- myProject       # 
	|   |-- __init__.py # 标识这是一个Python包
	|   |-- settings.py # 项目的全局配置文件,包括数据库设置、静态文件路径、中间件、模板配置等。
	|   |-- urls.py     # 项目的 URL 路由配置文件,定义 URL 与视图的映射关系。
	|   `-- wsgi.py     # 用于部署项目的 WSGI 配置文件(Web 服务器网关接口)
	|   `-- asgi.py     # 用于支持异步 Web 服务器的 ASGI 配置文件。
	`-- db.sqlite3      # 本地小型数据库 跟PyCharm有区别的就是有这个文件其他大差不差
	`-- manage.py       # Django 项目的命令行工具,用于执行各种管理任务,如启动开发服务器、创建数据库迁移、运行测试等。
Pycharm创建

        使用pycharm直接new project选择对应的diango项目即可,名称不要取diango,可以试试新建会没有template和主入口代码。

目录结构

|-- djangoProject       # 项目的容器
	|-- djangoProject   # 
	|   |-- __init__.py # 标识这是一个Python包
	|   |-- settings.py # 项目的全局配置文件,包括数据库设置、静态文件路径、中间件、模板配置等。
	|   |-- urls.py     # 项目的 URL 路由配置文件,定义 URL 与视图的映射关系。
	|   `-- wsgi.py     # 用于部署项目的 WSGI 配置文件(Web 服务器网关接口)
	|   `-- asgi.py     # 用于支持异步 Web 服务器的 ASGI 配置文件。
	`-- manage.py       # Django 项目的命令行工具,用于执行各种管理任务,如启动开发服务器、创建数据库迁移、运行测试等。
# manage.py 使用runserver 试试启动服务器并使用默认端口访问 也可以认为是启动类
python manage.py runserver  # 启动开发服务器 http://127.0.0.1:8000/admin urls中配置的地址 可以访问admin
python manage.py makemigrations  # 创建数据库迁移
python manage.py migrate  # 应用数据库迁移
python manage.py startapp myapp  # 创建新的应用

PyCharm配置启动命令配置(不用在每次去终端去runserver)

MTV模式

        Django 框架采用的是 MTV 模式,这是一种类似于 MVC(Model-View-Controller)的软件设计模式,但 Django 对其进行了调整以适应 Web 开发的需求。MTV 模式将应用程序分为三个核心组件:

  1. Model(模型)

  2. Template(模板)

  3. View(视图)

MTV和MVC对比

MTVMVC作用
ModelModel数据层,与数据库交互
TemplateView展示层,渲染 HTML 页面
ViewController控制层,处理业务逻辑

创建APP

        为什么创建app其实对于我们来说就是不同的模块,这个模块说的是用户模块、购物车模块等。

        在Pycharm中terminal处,执行如下命令(显示为虚拟环境):

# python manage.py startapp 名称 或者使用 django-admin startapp firstapp
python manage.py startapp firstapp

        将新app添加到settings.py中的INSTALL_APPS中即可使用,代表引入

常见命令

命令功能描述
django-admin startproject <project_name>创建一个新的 Django 项目。
python manage.py startapp <app_name>在项目中创建一个新的 Django 应用。
python manage.py runserver启动 Django 开发服务器,默认运行在 http://127.0.0.1:8000/
python manage.py migrate应用数据库迁移,同步模型更改到数据库。
python manage.py makemigrations <app_name>根据模型的更改创建新的迁移文件。
python manage.py showmigrations显示所有应用的迁移状态(已应用和未应用的迁移)。
python manage.py sqlmigrate <app_name> <migration_number>查看特定迁移文件的 SQL 语句。
python manage.py createsuperuser创建超级用户,用于访问 Django 管理后台。
python manage.py shell启动 Django 的交互式 Python Shell,可以在其中操作模型和数据库。
python manage.py dbshell启动数据库的交互式 Shell(需要数据库客户端支持)。
python manage.py collectstatic收集所有静态文件到 STATIC_ROOT 目录,用于生产环境。
python manage.py flush清空数据库中的所有数据,但保留表结构。
python manage.py test <app_name>运行指定应用的测试用例。
python manage.py check检查项目的配置和代码是否有问题。
python manage.py changepassword <username>修改指定用户的密码。
python manage.py inspectdb根据现有数据库表生成 Django 模型代码。
python manage.py makemessages提取项目中的翻译字符串,生成 .po 文件。
python manage.py compilemessages编译 .po 文件为 .mo 文件,用于国际化支持。
python manage.py clearsessions清除过期的会话数据。
python manage.py sendtestemail发送测试邮件,检查邮件配置是否正确。
python manage.py createsuperuser创建超级用户,用于访问 Django 管理后台。
python manage.py loaddata <fixture_name>从固定文件(fixture)中加载数据到数据库。
python manage.py dumpdata <app_name>将指定应用的数据导出为固定文件(fixture)。
python manage.py findstatic <static_file>查找指定静态文件的位置。
python manage.py diffsettings显示当前设置与 Django 默认设置之间的差异。
python manage.py remove_stale_contenttypes删除数据库中已不使用的 contenttypes 数据。
python manage.py createcachetable创建缓存表(用于数据库缓存后端)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值