首页 > 其他分享 >1-Django框架简介以及基本操作

1-Django框架简介以及基本操作

时间:2024-02-27 22:00:12浏览次数:20  
标签:文件 项目 简介 py django 创建 基本操作 Django

安装

注意:安装的磁盘目录,以及后续通过Django创建目录的时候,不要出现中文,否则会出现预料之外的错误

建议:禁止套娃,即不要在A项目中创建B项目

# 如果不指定版本号,默认最新版
pip install django  

# 如果要指定版本,使用==版本号
pip install django==3.2.12

查看是否安装成功

可以通过pip list查看,也可以通过控制台输入django-admin,弹出类似如下的画面表示安装成功

image-20240226171333662

也可以通过pip show django查看,有类似页面也表示安装成功

Name: Django
Version: 3.2.12

常见命令行运行命令

项目创建

# 创建一个项目
# 这里的项目名称基于python命名规范
django-admin startproject 项目名称

# 建议提前通过cd等命令进入指定目录然后去创建
django-admin startporject douban_spider

image-20240226181201655

项目启动

# 进入到刚刚创建的项目根目录
# IP和PORT可选,默认是本地的 127.0.0.1:8000
python3 manage.py runserver [IP:PORT]

# 例如下面几个均可
python manage.py runserver
python manage.py runserver 8000
python manage.py runserver localhost:8080

项目启动之后直接浏览器访问对应的地址,或者按住CTRL鼠标左键点击地址访问。

image-20240226181017048

image-20240226180954466

创建APP

# 一样是需要进入项目根目录
# 创建语法
python manage.py startapp 应用名

# 例如
python manage.py startapp app

image-20240226180802644

注册APP

创建APP后,如果想使用相关的功能,必须将创建的APP注册到配置文件中

即在settings中加入下述内容

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 这里的app就是你刚刚通过命令创建的app名称
    'app'
]

通过pycharm操作

创建项目

需要pycharm专业版才可以哦~

File --> New Project --> 左侧选择Django --> Location地址后面加一个\然后跟上项目名称 --> 解释器可以根据实际情况自己去选择 --> create

image-20240226182451528

通过pycharm创建的Django项目,如果在Application name输入了app名称就会自动创建并注册app

image-20240226183729856

Django配置

image-20240226184504509

创建APP

image-20240226184852282

# 打开终端后,执行命令行工具即可
python .\manage.py startapp app_name

image-20240226185409305

这种也属于命令行去创建,一样需要自己去注册APP

伪代码项目介绍

使用django写一个淘宝,淘宝里面有很多功能模块

我们应该先创建一个空的django项目然后根据功能的不同创建不同的应用

应用名 业务
user 用户相关业务:管理用户账户信息(账号、密码、角色、权限)、用户行为记录、消息通知等
order 订单相关业务:负责订单生成、订单详情展示、订单状态变更、支付接口调用、物流追踪及订单评价等
goods 产品相关业务:包括商品分类管理、商品详情展示、库存管理、商品评论、浏览记录等
promotion 促销相关业务:针对促销活动的规划、优惠券发放、满减规则设置、折扣计算等;
category 商品类别业务:用于商品类别树的构建、导航菜单设置、新品上架、热门推荐等;
logistics 物流相关业务:对接物流公司API以获取物流信息、快递单号追踪等功能;
statistics 数据分析相关业务:收集并分析平台各项运营数据,如访问量、转化率、客单价等,为决策提供支持;

项目文件介绍

空项目

  ├── Django项目名       # 整体项目名
  ├── db.sqlite3      # Django默认的db数据库,sqlite3
  ├── manage.py				# Django的服务控制文件,所有的Django命令都是基于manage.py 来执行的
  └── mysite					# 项目名
      ├── __init__.py	# 包初始化文件
      ├── __pycache__	# 缓存编译后的模块代码,加快加载速度
      │   ├── __init__.cpython-310.pyc # 编译后的文件
      │   ├── settings.cpython-310.pyc # 编译后的文件
      │   ├── urls.cpython-310.pyc 		 # 编译后的文件
      │   └── wsgi.cpython-310.pyc     # 编译后的文件
      ├── asgi.py       # 支持异步请求处理的应用程序接口
      ├── settings.py   # 配置文件
      ├── urls.py			  # 实现URL路由规则
      └── wsgi.py			  # Django项目的入口点,将HTTP请求传递给WSGI容器,以启动Django服务器。

分支说明

Django项目名
这是您为该项目创建时指定的名称,比如 "mysite"。
每个Django项目都有一个唯一的名称,并且在整个项目目录下作为顶级目录存在。

db.sqlite3
这是Django默认使用的SQLite数据库文件。
SQLite是一个轻量级的关系型数据库管理系统,无需服务器运行,所有数据存储在一个文件中。
在这个项目中,SQLite被用作开发阶段的数据存储和本地测试环境的默认选项。

manage.py
这是Django的核心服务控制脚本,包含了各种用于管理和维护项目、应用程序以及运行Django服务器的内置命令。
通过manage.py,您可以执行如创建数据库、迁移模型、创建超级用户、运行开发服务器等操作。

mysite
    __init__.py
    这是一个空的Python模块文件,它告诉Python这是一个包含其他模块或包的目录。
    尽管对于Django项目来说,这通常不是必需的,但在一些情况下可能会用到。

    __pycache__
    Python会在此目录下缓存编译后的模块代码,以便加快后续加载速度。
    这些目录通常不应该直接修改或删除,而是由Python自动处理。

    __init__.cpython-310.pyc: 编译后的初始化模块。
    settings.cpython-310.pyc, urls.cpython-310.pyc, wsgi.cpython-310.pyc: 分别对应于settings.py、urls.py和wsgi.py这三个文件的编译版本。

    asgi.py
    在Django 3.0及更高版本中,此文件允许将项目配置为ASGI应用(Asynchronous Server Gateway Interface),即支持异步请求处理的应用程序接口,适用于生产环境中部署长连接或WebSocket服务。
   
    settings.py
    项目级别的设置文件,定义了诸如数据库连接、认证方式、中间件列表、静态文件托管、邮件配置等各种全局设置,以及其他项目自定义配置信息。
    
    urls.py
    应用程序级别的URL配置文件,定义了项目内各个视图函数与URL模式之间的映射关系,实现了URL路由规则。
   
    wsgi.py
    Web Server Gateway Interface (WSGI) 实现文件,是Django项目的入口点,将HTTP请求传递给WSGI容器(如uWSGI, Gunicorn, uWSGI等)以启动Django服务器。
    在早期版本中,Django项目可能只有一个根WSGI应用;而在现代Django项目中,可能涉及多个WSGI应用组合。

APP项目

如果说整个Django相当于一所大学,那么APP就相当于大学里面的一所学院。

└── app01					# APP 名字
  ├── __init__.py # 包初始化文件
  ├── admin.py    # 注册管理后台界面中的模型
  ├── apps.py     # 定义当前app相关的信息
  ├── migrations  # 模型相关的数据迁移历史记录文件
  │   └── __init__.py # 包初始化文件
  ├── models.py   # 数据库模型
  ├── tests.py    # 用于编写单元测试
  └── views.py    # 主要逻辑处理模块,负责接收 HTTP 请求并返回响应

分支说明

app1 是一个名为 app01Django应用程序目录,它遵循Django应用组织的标准结构,用于组织可重用的功能模块。

__init__.py
此文件是空的,但它表明当前目录 "app01" 是一个Python包,里面包含其他子模块或文件。

admin.py
如果您的 "app01" 应用需要注册管理后台界面(Admin Site)中的模型,则应在该文件中编写自定义的ModelAdmin类,以便管理和编辑数据库表中的记录。
如果没有特定需求,可以保持为空或者注释掉。

apps.py
此文件定义了 "app01" 应用本身,包括应用的元数据(如名称、路径等)、是否启用该应用,以及与其他应用的关系(如有依赖)。

migrations
存储与 "app01" 模型相关的数据迁移历史记录文件(.py)和应用状态文件(.pyc)。
当您更改了 "models.py" 中的模型结构时,Django会根据这些变更生成新的迁移文件,用于更新数据库结构以保持一致。

models.py
该文件定义了 "app01" 中的数据库模型(也称为数据结构或对象)。
每个模型继承自 django.db.models.Model 并定义字段及其属性,例如字段类型、验证规则、外键关联等。它是实现业务逻辑的基础,并最终决定了数据库表的设计。

tests.py
用于编写单元测试(Unit Tests)的模块,确保 "app01" 应用中各个功能模块正确无误地工作。
通过unittest.TestCase类或使用更高级别的测试框架如pytest进行测试用例编写。

views.py
视图(Views)是 "app01" 中的主要逻辑处理模块,负责接收 HTTP 请求并返回响应。
它们是Django URL 路由系统与用户交互的核心部分,定义了如何解析请求、调用相应的业务逻辑以及构建最终返回的响应数据。
每个视图通常与 URLconf 中的一个 URL 路由关联起来。

标签:文件,项目,简介,py,django,创建,基本操作,Django
From: https://www.cnblogs.com/ccsvip/p/18038492

相关文章

  • 云服务器转发动态请求(uwsgi+django项目)
    路飞后台部署本地操作上线前配置prod.py:上线的配置文件,内容拷贝dev.py,前身就是settings.py#关闭测试环境DEBUG=FalseALLOWED_HOSTS=['39.99.192.127'#公网ip地址]CORS_ORIGIN_ALLOW_ALL=True#允许所有跨域#静态文件配置:上线后还有额外配置,见下方......
  • WebApi项目初始结构简介
    1、launchSettings.json项目的配置文件,包括项目名称、端口号等信息2、依赖项存放项目所需要的一些依赖,例如log3、Controller控制器,可以理解为所有与逻辑相关的东西都在控制器里书写4、配置文件5、程序入口......
  • 【Django开发】0到1开发美多shop项目:用户登录模块开发。全md文档笔记(附代码 文档)
    本系列文章md笔记(已分享)主要讨论django商城项目相关知识。项目利用Django框架开发一套前后端不分离的商城项目(4.0版本)含代码和文档。功能包括前后端不分离,方便SEO。采用Django+Jinja2模板引擎+Vue.js实现前后端逻辑,Nginx服务器(反向代理)Nginx服务器(静态首页、商品详情页、uwsg......
  • django如何将视图的数据表下载下来?(包括数据过滤)
    思路关键:django的视图本身返回的是json数据,而pandas本身就可以对json数据形成excel输出。所以,现在的关键是如何拿到需要的json数据?突破点:filterset还是serializers,都是可以支持手动使用的。defgenerate_queryset_excel(queryset,filterset_cls,serializer_cls,request=None......
  • 数据分析 - 理论简介
    什么是数据分析数据分析是将数学、统计学理论结合科学的统计分析方法(如线性回归分析、聚类分析、方差分析、时间序列分析等)对数据库中的数据、Excel数据、收集的大量数据、网页抓取的数据等进行分析,从中提取有价值的信息形成结论并进行展示的过程。数据分析的目的在于将隐藏在一......
  • Python Django适配dm8(达梦)数据库
    官方文档https://eco.dameng.com/document/dm/zh-cn/start/python-development.htmlDjango适配达梦https://blog.csdn.net/qq_35349982/article/details/132165581https://blog.csdn.net/weixin_61894388/article/details/126330168项目适配达梦升级或安装依赖Django==3......
  • 寒假总结3spark简介
    ApacheSpark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UCBerkeleyAMPlab(加州大学伯克利分校的AMP实验室)所开源的类HadoopMapReduce的通用并行框架,Spark,拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不......
  • 痛定思痛,好好做人,从头过一遍PyTorch框架(一)(1.深度学习简介、2.预备知识)
    现在是2024年2月24日,13:59,从研一就开始断断续续说要过一遍框架,到现在博一下学期,还一直拖着呢,拖延症太可怕啦,决定好好做人,不拖了,就从现在开始,好好过一遍,呜呜呜呜呜呜呜呜,(罪该万死)。看的教程是:《动手学深度学习》(PyTorch版),是把李沐老师的《动手学深度学习》原书中的MXNet实现改......
  • 1.图书简介-来源豆瓣
    【内容简介】《活着》是当代作家余华的代表作,讲述了一个人历尽世间沧桑和磨难的一生,亦将中国大半个世纪的社会变迁凝缩其间。《活着》还讲述了眼泪的宽广和丰富;讲述了绝望的不存在;讲述了人是为了活着本身而活着的,而不是为了活着之外的任何事物而活着。《活着》出版25年来打动了无......
  • 1.图书简介-来源豆瓣
    【内容简介】《活着》是当代作家余华的代表作,讲述了一个人历尽世间沧桑和磨难的一生,亦将中国大半个世纪的社会变迁凝缩其间。《活着》还讲述了眼泪的宽广和丰富;讲述了绝望的不存在;讲述了人是为了活着本身而活着的,而不是为了活着之外的任何事物而活着。《活着》出版25年来打动了无......