Django框架:python web开发

1.环境搭建:

(a)开发环境:pycharm

(b)虚拟环境(可有可无,优点:使用虚拟环境可以把使用的包自动生成一个文件,其他人需要使用时可以直接选择导入包,不需要额外的环境搭建。缺点:占一丢丢储存)

(c)Django下载,下载到pycharm根目录。打开项目目录,在资源管理器中的项目目录中打开终端,然后直接pip。或者在官网中下载。

(d)创建Django项目:左上角新建Django项目,展开更多设置,可以选择创建html模版,和初始app(填写名字才会创建)。创建项目之后会自动创建很多个py文件

2.HTTP通信过程:

当我们访问地址时

这里访问本地地址,其中8000为端口号,index为路由。

我们指定当我们访问路由为index,我们可以在urls.py中找到路由所对应的视图函数,那么就会自动运行我们的视图函数。例如这里写了路由index对应的函数为index,所以他会去找index函数,这个函数我们写在user.views里,所以我们这里要先进行import导入。

user是我们创建app时写的app名字,后续也可以添加在djangoproject目录里的setting.py文件中:

 如果一开始在创建项目的时候写了app名,那么这里就不用写了,否则会报错。

在user这个app里我们创建一个templates文件夹用来储存html模版。

在views.py文件中我们写了视图函数index,并且在我们urls.py中import导入了这个函数库,于是我们会执行这个函数并在这里返回一个html文件。 

3.运行项目:

在pycharm中打开终端:在经过上述步骤之后,可以直接输入

python manage.py runserver

这会执行我们的整个项目并给予一个地址可以让我们观察项目返回内容。 

ctrl+c可以中断这个程序,否则他会一直运行。 

4.数据库迁移:

在models.py中写入数据库数据后,在终端中运行

python manage.py makemigrations

migrations文件夹会多出一个文件。

导入数据后再:

python manage.py migrate

迁移数据,这时 在data文件中就可以可视化查询数据库内容并修改。

我们可以在视图文件中导入models函数,models里面我们写的函数就可以拿出来用,这里用到Usermodel函数,加上后缀名objects.all可以返回数据库所有的内容。再利用render,命名一个users(左)来储存users(右)的所有数据并导入html中。

在html中我们就可以利用for循环遍历数据库所有的内容。 

html如下:

结果如下:

 

5.后台管理:

我们在admin.py中导入models的类,再在后台管理系统中运行。

 在终端中创建超级用户(管理员):

python manage.py createsuperuser

输入账号密码(密码不可视),就能创建成功。路由选择admin打开网址就能打开后台管理系统

里面存储的数据和数据表里的内容一致,可以实时修改。 

6.路由传参的页面跳转(反向解析):

首先在urls中的路由里写入传参的形式。 

<int:id>

这个的意思就是传入的数据是整数,跟在路由后面。比如传入为1,那么网址就是..../detail/1/

传入数据可以直接网址上面传入,也可以在函数中传入例如:

在视图函数中添加:

def detail(request,id):c=Usermodel.objects.get(pk=id)return render(request,'detail.html',{'users':c}

这里的c相当于在model中获取了数据,虽然model只写了数据库结构,但是model.objects可以直接导入数据库内容(别管怎么来的,这就是django),再用get方法只获取id的内容。这里获取哪一个呢?根据我们传入的id决定。

id由哪里来?我们写一个html交互数据库,利用循环展示每一个数据的内容。我们点击某一个超链接对应的数据库内容,那么就会获得这个超链接对应的数据库内容的id,把它反向解析到url中。detail是我们提前在urls.py里写好的url的名字。

 1.html(name=‘index’):

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> Hello world  </h1>
<ul>{% for a in users %}<a href="{% url 'detail' a.id %}" >{{ a.name }},{{ a.age }}</a>{% endfor %}
</ul>
</body>
</html>

detail.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>{{ users.id }}{{ users.sex }}</h1>
</body>
</html>

这样我们就可以根据id不同,在同一个页面显示不同的内容。

 result:

Rec 0001


再利用反向解析写个返回键:

为什么href不直接跳转到1.html反而要给一个name为index的url地址呢?

直接跳转到html没办法传入数据,但是跳转到路由会先执行视图函数,在视图函数中我们可以先获取数据再返回渲染的html,这样在第二次通过html获取数据的时候才不会报错。不然html不知道在哪里获取数据。

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

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

相关文章

vmware虚拟机配置ubuntu 18.04(20.04)静态IP地址

VMware版本 &#xff1a;VMware Workstation 17 Pro ubuntu版本&#xff1a;ubuntu-18.04.4-desktop-amd64 主机环境 win11 1. 修改 VMware虚拟网络编辑器 打开vmware&#xff0c;点击顶部的“编辑"菜单&#xff0c;打开 ”虚拟化网络编辑器“ 。 选择更改设置&#…

【Unity】unity3D 调用LoadSceneAsync 场景切换后比较暗 部门材质丢失

解决方法&#xff1a;两个场景使用同样灯光 现象 直接进入第二个场景是可以正常显示 调用LoadSceneAsync来切换后&#xff0c;第二个场景出现比较暗的情况 解决方法&#xff1a;两个场景使用同样灯光&#xff0c;在loading 的场景中加入灯光。 Light—Directional Light 如果…

R5天气识别学习笔记

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 LSTM-天气识别预测 雨天百分比数据预处理模型训练结果可视化个人总结 import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyp…

SpringMVC (1)

目录 1. 什么是Spring Web MVC 1.1 MVC的定义 1.2 什么是Spring MVC 1.3 Spring Boot 1.3.1 创建一个Spring Boot项目 1.3.2 Spring Boot和Spring MVC之间的关系 2. 学习Spring MVC 2.1 SpringBoot 启动类 2.2 建立连接 1. 什么是Spring Web MVC 1.1 MVC的定义 MVC 是…

【混合开发】CefSharp+Vue 解决Cookie问题

问题表现 使用Element-admin架构搭建Vue前端项目&#xff0c;在与CefSharp搭配时&#xff0c;出现无法使用cookie的问题。 无法将token存入cookiecookie无法被读取 如下图&#xff0c;Cookies下显示file://。 正常的Cookies显示&#xff0c;Cookies显示为http://域名&#x…

jmeter事务控制器-勾选Generate Parent Sample

1、打开jmeter工具&#xff0c;添加线程组&#xff0c;添加逻辑控制器-事务控制器 2、在事务控制器&#xff0c;勾选Generate parent sample&#xff1a;生成父样本&#xff1b;说明勾选后&#xff0c;事务控制器会作为父节点&#xff0c;其下面的请求作为子节点 3、执行&#…

【Linux】进程间通信IPC

目录 进程间通信 IPC 1. 进程间通信方式 2. 无名管道 2.1 特点 2.2 函数接口 2.3 注意事项 3. 有名管道 3.1 特点 3.2 函数接口 3.3 注意事项 3.4 有名管道和无名管道的区别 4. 信号 4.1概念 4.2信号的响应方式 4.3 信号种类 4.4 函数接口 4.4.1 信号发送和挂…

SpringMVC——原理简介

狂神SSM笔记 DispatcherServlet——SpringMVC 的核心 SpringMVC 围绕DispatcherServlet设计。 DispatcherServlet的作用是将请求分发到不同的处理器&#xff08;即不同的Servlet&#xff09;。根据请求的url&#xff0c;分配到对应的Servlet接口。 当发起请求时被前置的控制…

openssl s_server源码剥离

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

算法库里的heap算法,仿函数和模版进阶(续)

文章目录 算法库里面的heap仿函数模版非类型模版参数array特化函数模版的特化类模版的特化 分离编译 算法库里面的heap sort_heap是算法库里的函数&#xff0c;前提要求是堆才能排序is_heap判断是否是堆make_heap建堆算法 int main() {int a[5] { 10,19,27,39,19 };std::vec…

具身导航如何利用取之不尽的网络视频资源!RoomTour3D:基于几何感知的视频-指令训练调优

作者&#xff1a;Mingfei Han, Liang Ma, Kamila Zhumakhanova, Ekaterina Radionova, Jingyi Zhang, Xiaojun Chang, Xiaodan Liang, Ivan Laptev 单位&#xff1a;穆罕默德本扎耶德人工智能大学计算机视觉系&#xff0c;中山大学深圳校区&#xff0c;悉尼科技大学ReLER实验室…

解决报错:未定义标识符 “M_PI“

问题&#xff1a; 使用C编译&#xff0c;已经用#include <cmath>包含了头文件&#xff0c;但是在使用M_PI时依旧报错说未定义 原因&#xff1a; 在某些编译器中&#xff0c;<cmath> 库中的 M_PI 是一个条件宏&#xff0c;需要 _USE_MATH_DEFINES 宏被定义才能使用。…

TensorFlow深度学习实战(5)——神经网络性能优化技术详解

TensorFlow深度学习实战&#xff08;5&#xff09;——神经网络性能优化技术详解 0. 前言1. 识别 MNIST 手写数字1.1 MNIST 数据集1.2 独热编码1.3 定义神经网络1.4 训练神经网络 2. 构建深度神经网络3. 添加 Dropout 提高模型泛化能力4. 不同优化器对模型性能的影响5. 训练 ep…

代码随想录算法训练营day31

代码随想录算法训练营 —day31 文章目录 代码随想录算法训练营前言一、 56. 合并区间二、738. 单调递增的数字三、968.监控二叉树总结 前言 今天是算法营的第31天&#xff0c;希望自己能够坚持下来&#xff01; 今日任务&#xff1a; ● 56. 合并区间 ● 738.单调递增的数字 …

通过maven命令上传jar包至nexus v3.7.1

1 nexus和maven的简介 1.1 nexus ‌Nexus‌是由Sonatype公司开发的一款强大的制品仓库管理软件&#xff0c;主要用于搭建和管理各种类型的仓库&#xff0c;包括Maven、NuGet、npm等。Nexus支持多种仓库类型&#xff0c;如代理仓库&#xff08;代理互联网中的中央仓库&#xf…

level(三) filterblock

filterblock用于确定某个key是否存在于某个datablock中&#xff0c;在插入一个key到datablock中时也会插入一个key到filterblock中&#xff0c;filterblock中会记录所有的key&#xff0c;并通过布隆过滤器来确定一个key是否存于这个datablock中。下面来看下filterblock的代码&a…

优化 Vue项目中 app.js 文件过大,初始化加载过慢、带宽占用过大等问题

已亲测&#xff0c;绝对有效&#xff0c;底部有改善前后对比图证明。 1.服务器 nginx 增加配置 #开启gzip压缩 gzip on; #设置gzip压缩级别&#xff0c;2级是性价比最高的 gzip_comp_level 2; #设置动态gzip压缩的文件类型 gzip_types text/plain text/css text/javascript a…

浅谈云计算16 | 存储虚拟化技术

存储虚拟化技术 一、块级存储虚拟化基础2.1 LUN 解析2.1.1 LUN 概念阐释2.1.2 LUN 功能特性 2.2 Thick LUN与Thin LUN2.2.1 Thick LUN特性剖析2.2.2 Thin LUN特性剖析 三、块级存储虚拟化技术实现3.1 基于主机的实现方式3.1.1 原理阐述3.1.2 优缺点评估 3.2 基于存储设备的实现…

手摸手实战前端项目CI CD

由于图片和格式解析问题&#xff0c;为了更好阅读体验可前往 阅读原文 CI/CD 是 持续集成&#xff08;Continuous Integration&#xff09; 和 持续交付/部署&#xff08;Continuous Delivery/Continuous Deployment&#xff09; 的缩写&#xff0c;是现代软件开发中的一种自动…

【EI 会议征稿通知】第七届机器人与智能制造技术国际会议 (ISRIMT 2025)

第七届机器人与智能制造技术国际会议 (ISRIMT 2025) 2025 7th International Symposium on Robotics & Intelligent Manufacturing Technology 会议主要围绕“机器人”、“智能制造技术” 等研究领域展开讨论&#xff0c;旨在为机器人与智能制造技术等领域的专家学者、工…