新建Django项目

news2024/11/22 21:55:18

1. 创建项目

使用Django提供的命令,可以创建一个Django项目实例需要的配置项——包括数据库配置、Django配置和应用程序配置的集合。新建Django项目命令的语法格式如下:

django-admin startproject 工程名称

例如:想要在D:\的pythonProject目录中创建一个名为mysite的项目工程,可执行如下命令:

cd d:\pythonProject
django-admin startproject mydemo

执行后,会多出一个新目录名为mydemo,此即为新创建的工程目录。

2. 项目目录说明

  • mydemo : 根目录,项目的容器
  • manage.py:一个提供Django项目管理功能的命令行工具
  • **子mydemo:**一个纯Python包,其中存放项目文件,在引用项目文件时会使用到这个包名。
  • mydemo\settings.py 是项目的整体配置文件。
  • mydemo\urls.py 是项目的URL配置文件。
  • mydemo\wsgi.py 是项目与WSGI兼容的Web服务器入口。

3. 启动项目

在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

运行服务器命令如下:

python manage.py runserver ip:端口
或:
python manage.py runserver

可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000

  • django默认工作在调式Debug模式下,如果增加、修改、删除文件,服务器会自动重启。

  • 按ctrl+c停止服务器。

  • 默认情况下开发服务器在本地IP的8000端口上启动,若要更改端口,可将端口作为命令行参数传递。例如在端口8080上启动服务器,命令如下所示:

    python manage.py runserver 8080
    

4. 创建应用

在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。在Django中, 把这一个个子功能模块成为应用,一个Django项目可以包含多个Django应用,每个应用可在多个项目中被重复利用

在django中,创建应用模块目录可以通过命令来操作,即:

python manage.py startapp 应用名称

manage.py 为上述创建工程时自动生成的管理文件。

例如,在刚才创建的mysite工程中,想要创建一个用户users应用模块,可执行:

python manage.py startapp users

4.1 应用目录说明

  • admin.py 文件: 跟网站的后台管理站点配置相关。
  • apps.py 文件: 用于配置当前应用的相关信息。
  • migrations 目录: 用于存放数据库迁移历史文件。
  • models.py 文件: 用户保存数据库模型类。 m : model v: view T: Template
  • tests.py 文件: 用于开发测试用例,编写单元测试。
  • views.py 文件: 编写视图函数,MVT模型中的V。
  • db.sqlite3 : 轻量级关系型数据库,django默认使用sqlite数据库

4.2 注册应用

创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该应用,需要注册安装后才能使用。

在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用,初始工程中的INSTALLED_APPS如下:在这里插入图片描述

注册安装一个应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。

例如,将刚创建的demo子应用添加到工程中,可在INSTALLED_APPS列表中添加**‘demo.apps.DemoConfig’**。
在这里插入图片描述

4.3 在pycharm中 打开Django项目

  • 找到项目的根目录,打开Django项目
  • 设置项目的python解析器

5. 创建视图、定义路由

Django的视图是定义在应用的views.py中的。

5.1 创建视图

打开刚创建的users模块,在views.py中编写视图代码。

from django.http import HttpResponse
# 127.0.0.1:8000/index
def index(request):
    """
    index视图
    :param request: 包含了请求信息的请求对象
    :return: 响应对象
    """
    return HttpResponse("hello the world!")
# 127.0.0.1:8000/detail
def detail(request):
    """
    index视图,首页视图
    :param request: 请求对象
    :return: 响应对象
    """
    return HttpResponse('详情页')
  • 视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust对象,通常名为request
  • 视图函数的返回值必须为一个响应对象,可将要返回的字符串数据放到一个HTTPResponse对象中。

5.2 定义路由URL

为了保证服务器能成功找到用户请求的页面,需为应用配置路由。在应用users中创建子路由文件urls.py,分别配置根路由和子路由,配置信息分别如下:

  • 在应用中新建一个urls.py文件用于保存该应用的路由。
    在这里插入图片描述

  • 在users/urls.py文件中定义子路由信息。

    from django.urls import path
    from . import views
    # urlpatterns是被django自动识别的路由列表变量
    urlpatterns = [
        # 每个路由信息都需要使用url函数来构造
        # url(路径, 视图)
        path('index/', views.index),
        path('detail/', views.detail),
    ]
    
  • 在项目工程总路由mydemo/urls.py中添加users应用的路由信息

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('demo/', include('demo.urls'))
    ]
    
    • 使用include来将子应用users里的全部路由包含进项目路由中;
    • ‘demo/’ 决定了users应用的所有路由都已**/demo/开头,如我们刚定义的视图index,其最终的完整访问路径为/demo/index/**。

6. 在Pycharm中创建Django项目

在这里插入图片描述

使用pycharm创建Django项目时默认使用最新的版本
在这里插入图片描述

当安装成功后,再打开项目解析器设置,效果如下
在这里插入图片描述

修改settings.py文件
在这里插入图片描述

解决办法:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/473064.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql 存储过程 / 存储函数

目录 0 课程视频 1 基本语法 1.0 作用 ->在数据库中 封装sql语句 -> 复用 -> 减少网络交互 ->可接收参数返回数据 1.1 创建 1.2 调用 1.3 查看 1.4 删除 1.5 ; 封号结束符 改成 $$ 双刀符合结束语句 -> 因为打包封号结束有冲突 1.6 在cmd 中定义 存储过…

基于 SpringBoot+Vue+Java 的财务管理系统(附源码,教程)

文章目录 一 简介第二.主要技术第三、部分效果图第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R图4.2.2 数据库表 第五章 系统功能实现5.1管理员功能模块 一 简介 财务管理系统的需求和管理上的不断提升,财务管理系统的潜力将无限扩大,财务管…

Postman预请求脚本、测试脚本(pre-request scripts、tests常用工作总结)

文章目录 Postman预请求脚本(pre-request scripts工作常用总结)Postman预请求脚本Postman测试脚本预请求脚本和测试脚本有什么区别常用工作总结登录接口返回的是Set-Cookie标头 Postman预请求脚本(pre-request scripts工作常用总结&#xff0…

Spring Boot配置文件及日志信息

目录 前言: Spring Boot优点 配置文件 配置文件格式 读取配置文件 properties配置文件格式 properties优缺点分析 yml配置文件格式(另一种标记语言) yml优缺点分析 Spring Boot 不同平台配置文件规则 日志信息 日志的功能 Sprin…

Springboot +Flowable,设置任务处理人的四种方式(一)

一.简介 学习下UserTask 设置用户的三种方式,至于如何设置用户组,下篇文章再聊。 现在,假设我有如下一个简单的流程图: 那么该如何设置这个用户节点的处理人? 二.第一种:指定具体用户 第一种方式&…

电路中噪声来源

电路包括不同的部件和芯片,所有都有可能成为噪声的来源。例如,电阻会带来热噪声,这个噪声为宽频噪声,几乎涵盖所有频率范围;运算放大器其芯片内部会产生噪声;而 ADC产生的量化噪声相较于其他器件&#xff0…

【】右值引用完美转发

文章目录 右值引用和左值引用左值和右值概念左值引用 && 右值引用右值引用使用场景和意义左值引用的使用场景**左值引用的短板:**右值引用和移动语义STL容器增加的接口move函数右值引用的其他使用场景 完美转发万能引用完美转发保持值的属性完美转发的使用场景 右值引用…

【Linux】进程信号 --- 信号产生 信号递达和阻塞 信号捕捉

🍎作者:阿润菜菜 📖专栏:Linux系统编程 文章目录 一、预备知识二、信号产生1. 通过终端按键产生信号1.1 signal()1.2 core dump标志位、核心存储文件 2.通过系统调用向进程发送信号3.由软件条件产生信号3.1 alarm函数和SIGALRM信号…

vue3通过ref拿element弹框中的组件问题

写在<el-dialog>中的组件&#xff0c;在一开始&#xff0c;弹框没有弹出来的时候&#xff0c;<el-dialog>中的组件是没有被渲染出来的&#xff0c;因此在<el-dialog>中使用ref标记某个组件&#xff0c;在el-dialog没有被渲染出来之前去拿的话&#xff0c;是拿…

ml常见代码片段

常用ML代码片段 变换一列 new_df[brand] new_df[prod_name].apply(lambda x: x.split()[0])变换2列 new_df[chip_total_sales] new_df.apply(lambda x: x[total_sales] * x[is_chip], axis 1) # 重要的是axis1groupby 计数&#xff0c;求和&#xff0c;取第一个值&#x…

C语言起源、特性和发展历程

本文从ALGOL 60语言谈起&#xff0c;简述C语言的起源和发展历程&#xff0c;然后对C语言的一些特性做了探讨&#xff0c;最后说说C语言为什么在众多编程语言中&#xff0c;起到了承上启下的作用。 本文介绍以下内容&#xff1a; C语言的起源C语言的发展C语言的特性C语言的重要…

外卖项目优化-01-redis缓存短信验证码、菜品数据

文章目录 外卖项目优化-01课程内容前言1. 环境搭建1.1 版本控制解决branch和tag命名冲突 1.2 环境准备 2. 缓存短信验证码2.1 思路分析2.2 代码改造2.3 功能测试 3. 缓存菜品信息3.1 实现思路3.2 代码改造3.2.1 查询菜品缓存3.2.2 清理菜品缓存 3.3 功能测试3.4 提交并推送代码…

AutoGPT安装教程

最近安装AutoGPT时遇到了一些问题&#xff0c;写下这篇文章记录一下 1 下载AutoGPT AutoGPT链接&#xff1a;https://github.com/Significant-Gravitas/Auto-GPT/tree/v0.2.2 下载AutoGPT 推荐下载stable 版本 2 申请openai 的api key 获取api的key&#xff0c;这里就不介…

【超算/先进计算学习】日报8

目录 今日已完成任务列表遇到的问题及解决方案任务完成详细笔记阶段一阶段二阶段三阶段四 对自己的表现是否满意简述下次计划其他反馈 今日已完成任务列表 超算/高性能计算总结 遇到的问题及解决方案 无 任务完成详细笔记 阶段一 在学习的第一阶段&#xff0c;我们首先对需要…

ChatGPT+智能家居在AWE引热议 OpenCPU成家电产业智能化降本提速引擎

作为家电行业的风向标和全球三大消费电子展之一&#xff0c;4月27日-30日&#xff0c;以“智科技、创未来”为主题的AWE 2023在上海新国际博览中心举行&#xff0c;本届展会展现了科技、场景等创新成果&#xff0c;为我们揭示家电与消费电子的发展方向。今年展馆规模扩大至14个…

【pytest里的参数化:看几个例子就够了!】

参数化多个参数&#xff1a;可以使用多个参数来参数化测试。例如&#xff1a; import pytestpytest.mark.parametrize("x, y, expected", [(1, 2, 3),(3, 4, 7),(5, 6, 11), ]) def test_addition(x, y, expected):assert x y expected参数化列表&#xff1a;可以…

轻叶H5营销单页,让你的营销更加清爽高效

网络营销就是营销企业品牌形象、产品信息发布、优惠促销活动&#xff0c;最终目的就是争抢流量和客户。现在为了吸引流量&#xff0c;各种营销方式、广告玩法层出不穷&#xff0c;成本投入大&#xff0c;带来的转化不一定好。今天&#xff0c;我们要来讲一讲H5营销单页。 H5营销…

项目管理软件project下载安装配置图文教程

目录 前言 配置安装过程 总结 前言 Project是一种计划、组织和管理任务的工具&#xff0c;通常用于团队协作和项目管理。它可以帮助用户创建任务列表、分配任务、设置截止日期、跟踪进度、分析数据等。Project还可以生成各种报告&#xff0c;如甘特图、资源使用情况、任务分…

稀疏矩阵存储格式总结

稀疏矩阵是指矩阵中的元素大部分是0的矩阵&#xff0c;实际问题中大规模矩阵基本上都是稀疏矩阵&#xff0c;很多稀疏度在90%甚至99%以上,大规模的稀疏造成了大量无效数据的计算和存储资源占用&#xff0c;也无法有效的载入有限内存计算。因此我们需要有高效的稀疏矩阵存储格式…

SpringCloud:ElasticSearch之数据同步

elasticsearch中的酒店数据来自于mysql数据库&#xff0c;因此mysql数据发生改变时&#xff0c;elasticsearch也必须跟着改变&#xff0c;这个就是elasticsearch与mysql之间的数据同步。 1.思路分析 常见的数据同步方案有三种&#xff1a; 同步调用异步通知监听binlog 1.1.同…