人生若只如初见,你不来看看Django吗
前言
本文介绍python三大主流web框架之一的Django框架的基本使用,如何创建django项目,如何运行django项目以及django项目的目录结构,另外django又是如何返回不同的数据和页面?
python三大主流web框架
Python有三大主流的web框架分别是Django,flask以及tornado,下述表格中简单对比一下三种框架:
Django | flask | tornado |
---|---|---|
功能全面 | 短小精悍 | 异步非阻塞,支持高并发 |
有时候过于笨重 | 比较依赖第三方模块 | ... |
django安装
Django有1.x版本、2.x版本、3.x版本,每个版本之间都有不同,不指定版本安装默认安装最新版本。通过在命令行中运行django-admin
验证是否安装成功。
pip install django # 安装最新版本
pip install django==1.11 # 指定版本安装,版本为1.11
django基本操作
Django基本操作包括创建Django项目、启动Django项目以及创建应用,分别使用命令行和pycharm这两种方式创建。
命令行操作
首先是创建Django项目,使用命令行创建Django项目时需要注意无需打开python解释器,直接在命令行中操作即可,创建项目之前可以将路径切换到自己想要的目录下进行创建。
django-admin startproject first_django
创建成功后在项目文件夹first_django下文件结构如下:
成功创建项目之后就可以运行Django项目了,运行Django项目时需要将目录切换到manage.py
所在的路径下执行下述命令:
python manage.py runserver
还有一个命令是创建应用,这里需要解释一下应用的意思 - 一个应用简单来说就是一个独立的功能模块,比如一个商城项目可以分为订单应用、用户应用、商品应用等。创建应用同样需要将目录切换到manage.py文件所在的路径,命令如下:
# 应用名需见名知意
# python manage.py startapp 应用名
python manage.py startapp first
划重点!划重点!!!每创建一个应用之后一定腰去配置文件(settings.py)中进行注册。
# settings.py注册应用部分的代码
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','first.apps.FirstConfig', # 全写,推荐的方式'first', # 简写
]
pycharm操作
pycharm社区版不支持直接创建Django项目,只有专业版才支持。但是不管是专业版还是社区版都可以运行Django项目。专业版pycharm在创建Django项目时直接选择Django即可。
pycharm运行Django项目和创建应用时可以直接在pycharm的终端中运行命令:
python manage.py runserver # 运行django项目
python manage.py startapp first # 创建应用
命令行与pycharm创建django项目的区别
命令行创建django项目和pycharm创建django项目有一点点小的不同,使用命令行创建时不会自动创建template文件夹,需要你自己手动创建,而pycharm会自动帮你创建并且还会自动在配置文件中配置对应的路径,也就意味着在用命令创建django项目的时候不单单需要手动创建templates文件夹还需要去配置文件中配置路径。
# pycharm创建 - settings.py
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')],
]# 命令行创建 - settings.py
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [],
]
主要文件介绍
创建django项目并创建应用之后的目录结构及文件介绍。
django框架与自定义web框架
在推导python web框架中实现了分文件和根据不同url返回不同的数据或者页面,django框架自然可以实现上面的两个“小小的”功能,在django项目中views.py
中存放的便是在推导web框架时封装的函数称为视图函数,urls.py
中存放的是视图函数和路由之间的对应关系。Django又如何返回数据给客户端呢?就需要用到三个方法 - HttpResponse, render, redirect
,根据实际代码演示。
HttpResponse, render, redirect基本使用
# HttpResponse - 定义视图函数时返回字符串类型的数据
# views.py
def index(request):''':param request: 请求相关的所有数据对象,比之前的env更厉害,后面会介绍request对象:return:HttpResponse(返回字符串至浏览器客户端)'''return HttpResponse('welcome my django!')# urls.py
urlpatterns = [url(r'^admin/', admin.site.urls),url(r'^index/',views.index),
]------------------------分割线-----------------------------------------------------------
# render - 定义视图函数时,返回HTML页面至浏览器客户端
def index(request):''':param request: 请求相关的所有数据对象,比之前的env更厉害,<WSGIRequest: GET '/index/'>:return:render(request,'render_html.html'):第一个参数时request,第二个参数时html文档的名字,会自动去template文件夹中找html文档'''return render(request,'render_html.html')---------------------------------分割线-------------------------------------------------
# redirect - 定义视图函数时,返回值会将页面进行重定向
def index(request):''':param request: 请求相关的所有数据对象,比之前的env更厉害:return:redirect,会将网页重定向,可以重定向至网址,也可以重定向到自己项目中的路由(只需要写网页后缀即可)'''# return redirect('https://www.baidu.com') # 重定向到百度return redirect('/home/') # 重定向到当前项目中的/home页面def home(request):return HttpResponse('我是自定义的')
相关文章:
人生若只如初见,你不来看看Django吗
前言 本文介绍python三大主流web框架之一的Django框架的基本使用,如何创建django项目,如何运行django项目以及django项目的目录结构,另外django又是如何返回不同的数据和页面? python三大主流web框架 Python有三大主流的web框架…...
项目人力资源管理
项目人力资源管理的 4 个过程:规划人力资源管理、组建项目团队、建设项目团队、管理项目团队等内容 单项选择题、案例分析题 人力资源管理领域输入、输出、工具和技术表: 过程名输入工具和技术输出编写项目人力资源计划 项目管理计划活动资源需求事业…...
提供接口给第三方调用,应该注意什么
1.如果我们要提供一个接口给第三方调用,首先我们需要考虑的就是接口安全,一定要做鉴权,至于鉴权的方式:大家可以在网上自行查找,今天我主要记录如何编写一个既能能支持并发的,且不会影响到我们自身业务的的…...
ESL设计概述
前言 随着芯片面临着应用场景丰富多变、集成功能模块越来越多、片内通信及模块间接口越来越复杂、设计规模越来越大以及PPA要求越来越高的需求,芯片设计方法面临越来越大的挑战。架构的合理性、完备性和一致性很大程度上决定了芯片设计的成败。基于同样的I…...
探究C语言数组的奥秘:大小可省略的定义、内存存储、数组名、传参、指针遍历、数组指针和指针数组、柔性数组等
也许你认为,C语言中的数组非常好理解,就是把一组相同类型的元素存储在同一块空间里。但是你可能并没有真正理解数组的本质,不信的话请回答一下下面的几个小问题,如果你能非常清晰的回答这些问题,那么你对C语言中的数组…...
python3 强制使用任意父级相对导入,越过python相对导入限制,拒绝 ImportError
前言 单纯不喜欢 python 对 点开头的包的限制,好麻烦,遂写了本包,来解决这个问题启用本模块后,你可以随时使用 单个点来导入当前目录的模块,也可以使用多个 点导入多级父目录内的模块,而不会报错烦人的模块…...
面了一个4年经验的测试工程师,自动化都不会也要15k,我也是醉了····
在深圳这家金融公司也待了几年,被别人面试过也面试过别人,大大小小的事情也见识不少,今天又是团面的一天, 一百多个人都聚集在一起,因为公司最近在谈项目出来面试就2个人,无奈又被叫到面试房间。 整个过程…...
Java 实现 YoloV7 人体姿态识别
1 OpenCV 环境的准备 这个项目中需要用到 opencv 进行图片的读取与处理操作,因此我们需要先配置一下 opencv 在 java 中运行的配置。 首先前往 opencv 官网下载 opencv-4.6 :点此下载;下载好后仅选择路径后即可完成安装。 此时将 opencv\b…...
跨越屏幕:桌面PC端的多端开发框架介绍
目前,随着互联网和移动互联网的发展,多端开发框架已经成为越来越多开发者更好的选择。主要有以下几个方面的前景: 跨平台开发需求不断增加:由于不同平台和设备的差异性,开发人员需要使用不同的编程语言和开发工具来为各…...
高效学习方法和工具推荐,让你事半功倍!
本文介绍了五种高效学习方法,包括制定详细的学习计划、集中注意力、不断复习、采用多种学习方式和利用小休息。同时,还推荐了五个高效学习工具和平台,包括Coursera、Duolingo、Quizlet、Khan Academy和Anki,让你在学习中事半功倍&…...
查看Docker容器中RabbitMQ的密码
要查看Docker容器中RabbitMQ的密码,可以尝试以下几个步骤: 1. 查看容器运行时的环境变量 在Docker容器中,可以通过环境变量来设置RabbitMQ的用户名和密码。因此,可以使用以下命令查看容器的环境变量: docker inspect…...
探索Qt线程编程的奥秘:多角度深入剖析
探索Qt线程编程的奥秘:多角度深入剖析 一、Qt线程编程基础(Qt Threading Basics)1.1 线程概念与基本概念(Thread Concepts and Fundamentals)1.2 Qt线程类简介:QThread(Introduction to Qt Thre…...
【R语言】鉴于计算10亿以内训练模型记录for循环的加速
文章目录 1 前言2 几个循环2.1 100以内的和2.2 100以内奇数和/偶数和 3 多重循环3.1 向量化3.2 合并循环3.3 apply函数3.4 矩阵运算3.5 foreach分解任务 4 讨论 1 前言 笔者主力机是MBAM1芯片(8256),某个下午巩固循环突然思考到个问题&#…...
C++类和对象 ——构造函数
C拷贝构造函数详解 什么是拷贝构造函数?拷贝构造函数的特征默认拷贝构造函数为什么需要显示定义构造函数?拷贝构造函数的调用场景什么时候不需要自己定义拷贝构造函数 什么是拷贝构造函数? 在现实生活中,拷贝构造函数就好像我们上…...
第2章-分治法
第2章-分治法 总分:100分 得分:20.0分 1 . 多选题 中等 10分 有关以下代码,说法正确的是( ABCE) def BinarySearch(s, x, low, high):if (low > high):return -1middle (low high) / 2if (x s[mid…...
20天能拿下PMP吗?
新版大纲,专注于人员、过程、业务环境三个领域,内容贯穿价值交付范围(包括预测、敏捷和混合的方法)。除了考试时间由240分钟变更为230分钟、200道单选题变为180道(包含单选和多选)之外,新考纲还…...
Word处理控件Aspose.Words功能演示:在 Java 中将 Word DOC/DOCX 转换为 PDF
Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。 Aspose API支持流行文件格式处理,并…...
数据安全的重要性
数据安全非常重要,因为我们生活在数字化时代,许多信息和数据都以数字形式存储和传输。如果这些数据受到未经授权的访问、篡改、泄露或破坏,会对个人、组织和国家造成严重的损失。 以下是数据安全的重要性: 1. 保护各类隐私&#x…...
要创建富文本内容?Kendo UI Angular组件有专门的编辑器应对!
您的Angular应用程序可能需要允许用户添加带有格式化选项的文本、图像、表格、外观样式和/或链接,使用Kendo UI for Angular的编辑器,可以轻松搞定这些! Kendo UI for Angular是专业级的Angular UI组件库,不仅是将其他供应商提供…...
工赋开发者社区 | 装备制造企业数字化转型总体框架
导读 当前,面对技术、市场以及供应链等多重挑战,在软件定义、数据驱动、数字孪生、大数据、人工智能及元宇宙等技术加持下,装备制造企业不断采用新工艺、新材料,以新模式推动产品快速创新。企业积极关注并探索数字化转型路径&…...
Python趋势外推预测模型实验完整版
趋势外推预测模型实验完整版 实验目的 通过趋势外推预测模型(佩尔预测模型),掌握预测模型的建立和应用方法,了解趋势外推预测模型(佩尔预测模型)的基本原理 实验内容 趋势外推预测模型 实验步骤和过程…...
KALI入门到高级【第三章】
预计更新第一章 入门 1.1 什么是Kali Linux? 1.2 安装Kali Linux 1.3 Kali Linux桌面环境介绍 1.4 基本命令和工具 第二章 信息收集 1.1 网络扫描 1.2 端口扫描 1.3 漏洞扫描 1.4 社交工程学 第三章 攻击和渗透测试 1.1 密码破解 1.2 暴力破解 1.3 漏洞利用 1.4 特…...
React Native中防止滑动过程中误触
React Native中防止滑动过程中误触 在使用React Native开发的时,当我们快速滑动应用的时候,可能会出现误触,导致我们会点击到页面中的某一些点击事件,误触导致页面元素响应从而进行其他操作,表现出非常不好的用户体验。 一、问题…...
【c语言】函数递归调用
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ…...
SPSS如何进行判别分析之案例实训?
文章目录 0.引言1.一般判别分析2.逐步判别分析3.决策树分析 0.引言 因科研等多场景需要进行绘图处理,笔者对SPSS进行了学习,本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结,本文对判别分析进行阐述。 1…...
Windows 10 字体模糊发虚的问题及解决方法
Windows 10字体模糊发虚! 如何解决?Windows 10是一款常见的操作系统,它拥有各种各样的功能,但是有些用户发现,在使用Windows 10时,字体会变得模糊发虚,这给用户带来了很多不便。下面,我们就来看看如何解决…...
渔人杯部分wp
文章目录 渔人杯神仙姐姐阿拉丁飘啊飘 渔人杯 神仙姐姐 点击拜 ,抓包发现get请求了/sx.php 返回如下 {"code":0,"num":1,"flag":"ctfsh0w-f1ag-n0t-h3r3-th1s-msg-just-a-j0ke-}{"}在repeater重复请求,发现…...
测试用例覆盖不全面的解决方法
测试用例覆盖不全面的解决方法 问题分析 在测试用例设计过程中,容易出现思维受限或者需求盲区,我们不可能完全覆盖用户使用的所有场景,编写测试用例的时不可能把所有的场景都能想周全,把所有的场景下的情况都写成测试用例去模拟、…...
AWS Lambda - 第一部分
Hello大家好,我们今天开始讨论AWS Lambda的内容。 SAP认证考试会涉及到很多Lambda的内容,想要通过认证考试虽然不一定非要精通开发,但需要知道Lambda的一些功能和特性、适用场景以及Lambda是如何工作的。 我们开始吧! Lambda与…...
Java 基础进阶篇(七)—— 面向对象三大特征之三:多态
文章目录 一、多态的概述二、多态中成员访问特点 ★三、多态的优势与劣势四、多态下的类型转换4.2 自动类型转换(从子到父)4.2 强制类型转换(从父到子)4.3 instanceof 关键字 一、多态的概述 多态:是指执行同一个行为…...
肥城网站制作/seo网站排名优化价格
一、MDN文字样式知识点 1、font-family: 提供一个字体栈? font-family: "Trebuchet MS", Verdana, sans-serif; 不止一个单词,用引号包裹 2、font-size单位:px、em、rem (1)px:绝对单位 (…...
济南商城网站建设/站长号
本文介绍c里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是c11支持,并且第一个已经被c11弃用。为什么要使用智能指针:我们知道c的内存管理是让很多人头疼的事,当我们写一个new语句时,一般就会立即把…...
保定seo建站/长沙seo外包
1、pushbutton->default属性为true,按回车相当于点击该按钮。 2、选中checkable后,Button变成切换按钮(toggle button),可以有两种状态:按下/弹起,默认状况下checkable是不选中的,Button默认为触发按钮(…...
django做网站比较容易/深圳网络推广大师
声明使用的JDK9&Tomcat9版本; ① cookie的有效路径仅仅能被 其自身和其子路径访问; ② 当cookie的有效路径为 / 时候,web项目下所有的路径均可以访问到 cookie; 测试如下: 创建cookie: 访问 serv…...
国外唯美flash个人网站欣赏/it培训机构怎么样
0.参考文献1.HashSet概述:HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。HashSet中不允许有重复元素,这是因为HashSet是基于HashMap实…...
java web 做购物网站/网站优化师
倍压整流电路图(一)倍压整流,是把较低的交流电压,用耐压较低的整流二极管和电容器,“整”出一个较高的直流电压。在一些需用高电压、小电流的地方,常常使用倍压整流电路。倍压整流电路一般按输出电压是输入电压的多少倍࿰…...