Django的初步使用

1.安装Django

pip install django

验证是否安装成功:
 

$ python3
Python 3.8.10 (default, Jan 17 2025, 14:40:23)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(4, 2, 18, 'final', 0)
>>>

2.建立项目

django-admin startproject 站点名称

django-admin startproject form_demo

目录结构如下:

•manage.py : 是 django 用于管理本项目的命令行工具,之后进行站点运行、数据库自动
生成、静态文件收集等都要通过该文件完成。
•内层form_demo/ 目录中包含了本项目的实际文件,同时因为其中包含__init__.py 文件,
所以该目录也是一个 Python 包。
• form_demo/init.py : 告诉 Python 该目录是-个 Python 包,其中暂无内容。
• form_demo//settings.py: Django 的 项目配置文件 。 默认时,在其中定义了本项目引用的
Django 组件、 Django 项目名等 。 在之后的开发中,还需在其中配置数据库参数、导入
的其他 Python 包等信息。
•form_demo/urls.py : 维护项目的 URL 路由映射,即定义客户端访问的 URL 由 H}j~ 一个 Python
模块解释并提供反馈。在默认情况下,其中只定义了 “ /admin”即 管理员站点的解释器。
•form_demo/wsgi.py : 定义 WSGI 的 接口信息,用于与其他 Web 服务器集成, 一般本文件
在生成后无须改动。

front目录是新建的app。通过form_demo下的urls.py的路由管理之后可能新建的更多的app

3.建立应用:

为了在项目中开发符合 MVC 架构的实际应用程序,我们需要在项目中建立 Django 应用

每个 Django 项目可以包含多个 Django 应用。建立应用的语法如下:

我这里的python默认python2所以使用python3的语法时用python3

python3 manage.py startapp 应用名称

其中的 manage.py 是建立项目时在项目目录中产生的命令行工具, startapp 是命令的关键字,
举例如下:

cd form_demo
python rnanage.py startapp front

命令完成后会在项目目录中建立如下目录及文件结构:

对其中的文件功能解析如下。
•__init__.py :其中暂无内容,该文件的存在使得 app 成为 一个 Python 包。
• admin.py : 管理站点模型 的声明文件,默认为 空。
• apps.py :应用信息定义文件 。在其中生成了类 AppConfig ,该类用于定义应用名 等 Meta
数据。
• migrations 包:用于在之后定义引用迁移功能 。
• models.py :添加模型层数据类的文件 。
• tests.py :测试代码文件。
• views.py :定义 URL 响应函数

urls.py是新建的文件。

4.建立基本的视图响应:

首先在 form_demo/front/views.py 中建立一个路由 响应应函数:

from django.shortcuts import render
from django.http import HttpResponsefrom datetime import datetimedef welcome(request):print("welcome to my tiny twintter!")return HttpResponse("<h1>Welcome to my tiny twintter!</h1>")def index(request):print("index")return render(request,'index.html')def baidu(request):print("baidu")context = {'title':'baidu','content':'baidu','books':[{'name':'三国演义','author':'罗贯中','price':'100'},{'name':'水浒传','author':'施耐庵','price':'200'}],'user':{'name':'张三','age':20,'sex':'男','height':190}}return render(request,'baidu.html',context)def url(request):print("url")return render(request,'url.html')def filter(request):print("filter")greet = 'hello world, hell Django!'context = {'greet':greet,'birthday':datetime.now()}return render(request,'filter.html',context)

接下来,要通过 URL 映射将用户的 HTTP 访问与该函数绑定起来。
在 form_demo/front/目录中新建一个 urls.py 文件,管理应用 app 中的所有 URL 映射,其文件
内容为:

from . import viewsfrom django.contrib import admin
from django.urls import pathurlpatterns = [path('',views.welcome,name='first-url'),path('index',views.index,name='index'),path('baidu',views.baidu,name='baidu'),path('url',views.url,name='url'),path('filter',views.filter,name='filter')
]

在项目 URL 文件 form_demo/urls.py 的 urlpatterns 中增加 一项,声明对应用 app 中 urls.py
文件的引用,代码如下:

urlpatterns = [path('admin/', admin.site.urls),path('app/',include('app.urls')), # 新增
]

通过以上配置和编码过程,就可以在网站验证效果了。查看网站效
果首先需要通过 manage.py 启动 Web 服务器,代码如下 :

$ python3 manage.py runserver 0.0.0.0:9000
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
February 06, 2025 - 09:34:28
Django version 4.2.18, using settings 'djangosite.settings'
Starting development server at http://0.0.0.0:9000/
Quit the server with CONTROL-C.

启动 Web 服务器后即可通过浏览器访问 http://localhost:9000/app/检验欢迎消息,

其他url也可以修改ip地址进行验证!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(前端基础)CSS(一)

了解 Cascading Style Sheet&#xff1a;层叠级联样式表 CSS&#xff1a;表现层&#xff08;美化网页&#xff09;如&#xff1a;字体、颜色、边框、高度、宽度、背景图片、网页定位、网页浮动 css优势&#xff1a; 内容和表现分离网页结构表现统一&#xff0c;可以实现复用…

CASAIM与韩国DOOSAN集团达成合作,开启工业制造自动化检测新篇

近日&#xff0c;CASAIM与韩国知名跨国企业斗山集团&#xff08;DOOSAN&#xff09;达成战略合作&#xff0c;联合打造CASAIM全自动化智能检测系统&#xff0c;助力斗山集团全面提升产品质量检测精度与效率&#xff0c;完成智能化检测升级&#xff0c;保持在全球市场竞争中的领…

矛盾(WEB)

##解题思路 打开靶场就是一段自相矛盾的代码&#xff0c;既要num是数字类型&#xff0c;又要判断为1 这种情况我们会想到弱类型的编程语言&#xff0c;插件查看过后&#xff0c;php就是弱类型的语言&#xff0c;此处并非是严格相等&#xff0c;只是 因此可以根据弱类型编程语言…

[AI]docker封装包含cuda cudnn的paddlepaddle PaddleOCR

封装,启动时需要在GPU服务器上 显卡驱动 cuda等下载需要注册账号 环境Ubuntu 24.04 LTS镜像uvicorn-gunicorn-fastapi:python3.8显卡支持版本CUDA Version: 12.5cuda版本cuda_12.4.0_550.54.14_linux.runcudnn版本PaddlePaddle-GpuPaddleOCR 启动进入容器 docker run --gpus …

idea连接gitee(使用idea远程兼容gitee)

文章目录 先登录你的gitee拿到你的邮箱找到idea的设置选择密码方式登录填写你的邮箱和密码登录成功 先登录你的gitee拿到你的邮箱 具体位置在gitee–>设置–>邮箱管理 找到idea的设置 选择密码方式登录 填写你的邮箱和密码 登录成功

VisionTransformer(ViT)与CNN卷积神经网络的对比

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

Java并发编程面试题:锁(17题)

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300的秘密武器

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 企业级应用开发的需求日益增长。今天&#xff0c;我们要介绍的是一个在GitHub上广受好评的开源项目——Jeesite5。这不仅是一个技术框架&#xff0c;更…

Python OpenCV图像去模糊实战:离焦模糊的修复原理与Python实现

针对因焦距未调好导致的彩色图像模糊问题,结合OpenCV的锐化处理和色彩空间转换技术,推荐以下分步解决方案: 一、YUV色彩空间锐化(保留颜色信息) 原理: YUV色彩空间:YUV色彩空间将图像分为亮度(Y)和色度(U和V)分量。通过仅处理亮度通道(Y),可以有效避免对颜色信…

深度学习算法优化如何实现?

深度学习算法优化是一个复杂而多维的过程&#xff0c;旨在提高模型的性能、准确性和效率。以下是一些实现深度学习算法优化的关键步骤和方法&#xff1a; 一、数据预处理与增强 数据清洗&#xff1a;去除重复、错误或无效的数据&#xff0c;确保数据集的准确性和一致性。数据增…

Windows平台的小工具,功能实用!

今天给大家分享一款超实用的Windows平台监控工具&#xff0c;堪称“桌面小管家”&#xff0c;能帮你轻松掌握电脑的各种运行状态&#xff0c;比如网速、下载速度、内存和CPU占用率等常用参数&#xff0c;让你的电脑运行情况一目了然。 TrafficMonitor 网速监控悬浮窗软件 这款…

【JavaEE进阶】MyBatis通过XML实现增删改查

目录 &#x1f38d;前言 &#x1f340;配置连接字符串和MyBatis &#x1f343;写持久层代码 ​&#x1f6a9;添加mapper接口 &#x1f6a9;添加UserInfoMapper.xml &#x1f6a9;单元测试 &#x1f332;查(Select) &#x1f6a9;结果映射 &#x1f334;增(Insert&…

Cloud之快照存储(Cloud Snapshot Storage)

Cloud之快照存储 一、什么是快照 1. 快照的定义 快照&#xff08;Snapshot&#xff09;是一种记录某一时刻数据状态的技术。在计算机存储和虚拟化环境中&#xff0c;快照能够将文件系统或虚拟机的状态保存下来&#xff0c;以便以后能够回溯到某一特定时间点。快照通常用于备…

nlp|微调大语言模型初探索(2),训练自己的聊天机器人

前言 上篇文章记录了具体的微调语言大模型步骤&#xff0c;以及在微调过程中可能遇见的各种报错&#xff0c;美中不足的是只是基于开源数据集的微调&#xff0c;今天来记录一下怎么基于自己的数据集去微调大语言模型&#xff0c;训练自己的智能机器人&#xff01;&#xff01;&…

剑指 Offer II 025. 链表中的两数相加

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20025.%20%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E4%B8%A4%E6%95%B0%E7%9B%B8%E5%8A%A0/README.md 剑指 Offer II 025. 链表中的两数相加 题目描述 给定两个 非…

numpy(02 数据类型和数据类型转换)

numpy(01 入门) 目录 一、Python NumPy 数据类型 1.1 NumPy 基本类型 1.2 数据类型对象 (dtype) 1.3 具体实例 二、Numpy数据类型转换 2.1 浮点数据转换 2.2 整型数据转换 2.3 浮点数转整数 一、Python NumPy 数据类型 1.1 NumPy 基本类型 下表列举了常用 NumPy 基…

python: SQLAlchemy (ORM) Simple example using SQLite

领域层&#xff08;Domain&#xff09;&#xff1a;定义了 School 实体类和 SchoolRepository 抽象基类&#xff0c;明确了业务实体和数据访问的契约。基础设施层&#xff08;Infrastructure&#xff09;&#xff1a;通过 SQLAlchemy 实现了 SchoolRepository 类&#xff0c;负…

MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 1

第01章_Linux下MySQL的安装与使用 首先在vmware中下载centos7&#xff0c;实际上8更好一点&#xff0c;不过centos已经是时代的眼泪了&#xff0c;我之前已经教过了&#xff0c;不过是忘了&#xff0c;所以重新说一遍&#xff0c;看文档即可 2.开机前修改mac地址 &#xff0…

谈谈 ES 6.8 到 7.10 的功能变迁(1)- 性能优化篇

前言 ES 7.10 可能是现在比较常见的 ES 版本。但是对于一些相迭代比较慢的早期业务系统来说&#xff0c;ES 6.8 是一个名副其实的“钉子户”。 借着工作内升级调研的任务东风&#xff0c;我整理从 ES 6.8 到 ES 7.10 ELastic 重点列出的新增功能和优化内容。将分为 6 个篇幅给…

Vue前端开发-Vant组件之Button组件

Vant 有丰富的UI组件&#xff0c;而基础组件是全部组件的核心&#xff0c;基础组件中将常用的元素做了二次的开发&#xff0c;封装成Vant格式组件&#xff0c;如按钮、图片和布局等&#xff0c;这些封装后的Vant组件&#xff0c;提供了更多面向实际应用的属性和事件&#xff0c…