运行你的第一个 Django APP

news2024/9/21 22:06:58

c47f6bda52815d414edd1e79bd3878ec

Django 版本:4.1.7
Python 版本:3.9.13


目录

    • 一、运行 Django
    • 二、创建 APP


一、运行 Django

1、新建项目(Project)

项目类型为 Django,选择虚拟环境,点击 Create 后就会自动下载并安装 Django。

image-20230228094936376

如果你是在 Linux 环境下实验,则进行如下测试:

django-admin startproject mysite

# 运行该命令前需要验证是否已经安装了django模块,否则无法创建工程

2、验证 Django 的版本

python -m django --version

image-20230228095326024

如果 Django 已经安装,您应该会看到安装的版本。如果不是,你会得到一个错误提示 No module named django

3、目录结构说明

image-20230228095907335

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

创建 Django 项目后,会自动创建上图中这几个目录,简单看看这些目录都有哪些作用:

  • 外层 mysite/

    外层的mysite/根目录是项目的容器。它的名字对Django来说并不重要,您可以将其重命名为任何您喜欢的名称。
    
  • manage.py

    一个命令行实用工具,允许您以各种方式与这个Django项目交互。你可以在django-admin和manage.py中读到关于manage.py的所有细节。
    
  • 内层 mysite/

    内层的mysite/目录是项目的实际Python包。它的名字是Python包的名字,你需要用它来导入里面的任何东西(例如mysite.urls)
  • mysite/__init__.py

    一个空文件,告诉Python这个目录应该被视为一个Python包。
    
  • mysite/settings.py

    这个Django项目的设置/配置。Django的设置会告诉你设置是如何工作的。
    
    
  • mysite/urls.py

    这个Django项目的URL声明;一个django站点的“目录”,实现路由功能。
    
    
  • mysite/asgi.py

    一个asgi兼容web服务器的入口,为您的项目服务。
    
  • mysite/wsgi.py

    一个wsgi兼容web服务器的入口,为您的项目服务。
    

4、验证 Django 项目是否有效

python manage.py runserver

# 在命令行上将看到如下输出

image-20230228101409494

此时,我们已经启动了 Django 开发服务器,这是一个纯用 Python 编写的轻量级 web 服务器。我们把它包含在 Django 中,这样你就可以快速开发,而不必配置生产服务器(比如Apache),直到你准备好投入生产。

注意:不要在任何类似于生产环境的环境中使用此服务器。它仅用于开发时使用(因为我们做的是 web 框架,而不是 web 服务器)。

现在服务器正在运行,使用 web 浏览器访问 http://127.0.0.1:8000/。你会看到如下页面,说明 Django 服务正常工作!

image-20230228101847907

5、如何修改端口

默认情况下,runserver 命令在 8000 端口上启动内部 IP 上的开发服务器,如果要更改服务器的端口,可将其作为命令行参数传递。

python manage.py runserver 8080

如果您想更改服务器的IP,请将其与端口一起传递。例如,要监听所有可用的公共ip(如果你正在运行Vagrant或想在网络上的其他计算机上炫耀你的工作,这是很有用的),如下。

python manage.py runserver 0.0.0.0:8000

# 也可指定具体IP

此时,与你同一局域网的服务器都可以访问你的 Django 项目。

二、创建 APP

APP 应用程序可以位于 Python 路径上的任何地方。我们可以让 APP 应用程序与 manage.py 文件处于同级目录下来创建我们的投票应用程序,这样它就可以作为自己的顶级模块导入,而不是作为 mysite 的子模块。

1、创建 Polls APP

确保你和 manage.py 在同一个目录下。

python manage.py startapp polls

这将会自动创建一个目录 polls,目录结构如下:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

image-20230228103242845

这个目录结构将容纳投票应用程序。

2、编写试图函数(view)

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

image-20230228103626873

这是 Django 中最简单的视图。

3、路由配置

为了调用视图,我们需要将它映射到一个 URL,为此我们需要一个 URL 配置。

在 polls 目录中创建一个 URL 配置文件,需要创建一个名为 urls.py 的文件。目录结构如下:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

image-20230228103935124

polls/urls.py 文件中编写如下代码:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

下一步是将根 URLconf 指向轮询。url 主模块在 mysite/urls.py 中,为 django.urls.include 添加一个导入,并在 urlpatterns 列表中插入一个 include(),具体如下:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

image-20230228104646656

include() 函数允许引用其他 urlconf。当Django遇到include()时,它会截断URL中匹配的任何部分,并将剩下的字符串发送到包含的URLconf中进行进一步处理。

4、启动程序

现在我们已经将一个索引视图连接到 URLconf 中,接下来进行验证它是否正常工作。

python manage.py runserver

image-20230228105226278

本地 Web 浏览器访问:http://127.0.0.1:8000/polls/

image-20230228105328534

至此,一个简单的 Django 项目就已经成功运行!

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

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

相关文章

机器学习——支持向量机学习

支持向量机(Support Vector Machine, SVM)不仅具有坚实的统计学理论基础,还可以很好地应用于高维数据、避免维度灾难问题,已经成为一种倍受关注的机器学习分类技术。为了解释SVM的基本思想,我们首先介绍一下最大边缘超平面(Maximal Margin Hyperplane)给定训练数据集…

C++STL详解(三)——vector的介绍和使用

文章目录vector的介绍vector的使用vector的定义方式vector的空间增长问题reserve和resizevector的迭代器使用begin 和endrbegin和rendinsert 和erasefind函数元素访问vector迭代器失效问题1:inserse插入扩容时空间销毁造成野指针问题2:erase删除或者inse…

什么是“奥卡姆剃刀”,如何用“奥卡姆剃刀”解决复杂问题?复杂问题简单化

什么是“奥卡姆剃刀”,如何用“奥卡姆剃刀”解决复杂问题?复杂问题简单化问题什么是“奥卡姆剃刀”?如何使用“奥卡姆剃刀”解决问题复杂问题简单化“汉隆剃刀”小结问题 假设你在夜空中看到一颗闪闪发光的「不明飞行物」,你认为这会是什么呢…

优秀的IC/FPGA开源项目(六)-手语字母翻译器

《优秀的IC/FPGA开源项目》是新开的系列,旨在介绍单一项目,会比《优秀的 Verilog/FPGA开源项目》内容介绍更加详细,包括但不限于综合、上板测试等。两者相辅相成,互补互充~一种智能手套,可将手语字母翻译成带显示器的书…

【分享】订阅集简云畅捷通T+cloud连接器自动同步财务费用单至畅捷通

方案场景 伴随公司发展和数字化水平提高,大量的财务单据需要手动审核和录入,这些重复机械的操作占据大量人力,同时极容易出现数据出错或丢失等情况,严重影响着企业经营效率。 使用集简云提供服务的畅捷通TCloud钉钉连接器完成财…

UML 类关系(详解)——依赖、关联、聚合、组合、泛化

概述 在学习面向对象设计时,类关系涉及依赖、关联、聚合、组合和泛化(继承)这五种关系,耦合度依次递增。关于耦合度,可以简单地理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦…

电子发票打印工具 v2023.02.27 免费的PDF发票打印软件

电子发票打印工具一款PDF发票打印辅助软件,因为单位有很多电子发票需要打印,每次打印都要用reader阅读器打开,选打印,选份数,选纸张,选纸盒,当然,有些发票有清单页的,以上步骤请再重复一遍。多张发票请重复N遍,忍了多年,终于决心开发一款方便用于打印PDF发票的辅助工…

源码numpy笔记

参考文章 numpy学习 numpy中的浅复制和深复制的详细用法 numpy中的np.where torch.gather() Numpy的核心数据结构,就叫做array就是数组,array对象可以是一维数组,也可以是多维数组 array本身的属性 shape:返回一个元组&#xf…

【数据库增删查改进阶版】保姆级教程带大家去学习更加复杂的sql语句,各种各样的约束以及各种各样的查询

前言: 大家好,我是良辰丫🍅🍅🍅,上一篇数据库我们一起学习了基础版本的增删查改,今天我们将接触更高级的增删查改,主要是学习一些约束条件,你们准备好了嘛?开…

华为OD机试题,用 Java 解【流水线】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

LearnOpenGL-入门-8.坐标系统

本人刚学OpenGL不久且自学,文中定有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/LearnOpenGLProject LearnOpenGL中文官网:https://learnopengl-cn.github.io/ 文章目录坐标系统概述局部空间世界空…

干货收藏|医疗数据安全、临床业务容灾、智能运维及数字化转型方案集锦

数智赋能,助力医院高质量发展!历时三天的2022中华医院信息网络大会(CHINC)圆满落下帷幕,美创科技赴五年之约,与医疗行业用户朋友在深圳再聚交流,也带来关于“医疗行业数据安全、数字化转型”的新…

【再临数据结构】Day1. 稀疏数组

前言 这不单单是稀疏数组的开始,也是我重学数据结构的开始。因此,在开始说稀疏数组的具体内容之前,我想先说一下作为一个有着十余年“学龄”的学生,所一直沿用的一个学习方法:3W法。我认为,只有掌握了正确的…

react的严格模式 和 解决react useEffect执行两次

useEffect执行两次 这个问题,主要是刚接触react的时候发的问题,当时也没总结。现在回过头来再总结一次!!! 文章目录useEffect执行两次前言一、为什么useEffect执行两次1.React的严格模式(模版创建项目&…

Hadoop综合案例 - 聊天软件数据

目录1、聊天软件数据分析案例需求2、基于Hive数仓实现需求开发2.1 建库2.2 建表2.3 加载数据2.4 ETL数据清洗2.5 需求指标统计---都很简单3、FineBI实现可视化报表3.1 FineBI介绍3.2 FineBI配置数据3.3 构建可视化报表1、聊天软件数据分析案例需求 MR速度慢—引入hive 背景&a…

深度剖析指针(中)——“C”

各位CSDN的uu们你们好呀,今天小雅兰的内容仍旧是深度剖析指针噢,在上一篇博客中,我已经写过了字符指针、数组指针、指针数组、数组传参和指针传参的知识点,那么这篇博客小雅兰会讲解一下函数指针、函数指针数组 、指向函数指针数组…

【Spark分布式内存计算框架——Spark Streaming】8. Direct 方式集成底层原理 集成Kafka 0.10.x

Direct 方式集成底层原理 SparkStreaming集成Kafka采用Direct方式消费数据,如下三个方面优势: 第一、简单的并行度(Simplified Parallelism) 读取topics的总的分区数目 每批次RDD中分区数目;topic中每个分区数据 被…

布局三八女王节,巧借小红书数据分析工具成功引爆618

对于小红书“她”经济来说,没有比三八节更好的阵地了。伴随三八女王节逐渐临近,各大品牌蓄势待发,这场开春后第一个S级大促活动,看看品牌方们可以做什么? 洞察流量,把握节点营销时机 搜索小红书2023年的三…

学员作品|微博“绿洲”APP产品分析

一产品架构1. 产品功能架构图绿洲的主要功能模块可以拆分为六部分:首页、发现、发布动态、个人中心、水滴、消息。整体功能架构图如下:2. 用户使用路径图用于浏览动态:用于发布动态:新用户引导路径:二市场分析1. 产品定…

【Linux】Linux中gcc/g++的使用

本期主题:程序的编译过程和gcc/g的使用博客主页:小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限,出现错误希望大家不吝赐🍁 1.背景知识 预处理(进行宏替换,去注释,头文件的…