当前位置: 首页 > news >正文

人生若只如初见,你不来看看Django吗

前言

本文介绍python三大主流web框架之一的Django框架的基本使用,如何创建django项目,如何运行django项目以及django项目的目录结构,另外django又是如何返回不同的数据和页面?

python三大主流web框架

Python有三大主流的web框架分别是Django,flask以及tornado,下述表格中简单对比一下三种框架:

Djangoflasktornado
功能全面短小精悍异步非阻塞,支持高并发
有时候过于笨重比较依赖第三方模块...

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('我是自定义的')

http://www.lryc.cn/news/64674.html

相关文章:

  • 项目人力资源管理
  • 提供接口给第三方调用,应该注意什么
  • ESL设计概述
  • 探究C语言数组的奥秘:大小可省略的定义、内存存储、数组名、传参、指针遍历、数组指针和指针数组、柔性数组等
  • python3 强制使用任意父级相对导入,越过python相对导入限制,拒绝 ImportError
  • 面了一个4年经验的测试工程师,自动化都不会也要15k,我也是醉了····
  • Java 实现 YoloV7 人体姿态识别
  • 跨越屏幕:桌面PC端的多端开发框架介绍
  • 高效学习方法和工具推荐,让你事半功倍!
  • 查看Docker容器中RabbitMQ的密码
  • 探索Qt线程编程的奥秘:多角度深入剖析
  • 【R语言】鉴于计算10亿以内训练模型记录for循环的加速
  • C++类和对象 ——构造函数
  • 第2章-分治法
  • 20天能拿下PMP吗?
  • Word处理控件Aspose.Words功能演示:在 Java 中将 Word DOC/DOCX 转换为 PDF
  • 数据安全的重要性
  • 要创建富文本内容?Kendo UI Angular组件有专门的编辑器应对!
  • 工赋开发者社区 | 装备制造企业数字化转型总体框架
  • Python趋势外推预测模型实验完整版
  • KALI入门到高级【第三章】
  • React Native中防止滑动过程中误触
  • 【c语言】函数递归调用
  • SPSS如何进行判别分析之案例实训?
  • Windows 10 字体模糊发虚的问题及解决方法
  • 渔人杯部分wp
  • 测试用例覆盖不全面的解决方法
  • AWS Lambda - 第一部分
  • Java 基础进阶篇(七)—— 面向对象三大特征之三:多态
  • day9 实现UDP通信