首页 > 编程语言 >Python Django 零基础从零到一部署服务,Hello Django!全文件夹目录和核心代码!

Python Django 零基础从零到一部署服务,Hello Django!全文件夹目录和核心代码!

时间:2023-07-04 11:33:04浏览次数:46  
标签:myapp views Python py Django 零到 urls hello

在这篇文章中,我将手把手地教你如何从零开始部署一个使用Django框架的Python服务。无论你是一个刚开始接触开发的新手,还是一个有经验的开发者想要快速了解Django,这篇教程都会为你提供一条清晰的路径。我们将从环境搭建开始,一步一步地创建一个可以处理GET和POST请求的服务,让你能在实践中理解Django的工作原理。

环境搭建(按需)

首先,我们需要创建一个适合开发的环境。在Python开发中,我们通常会使用虚拟环境来保持工作空间的整洁。以下是创建和激活虚拟环境的步骤:

# 创建虚拟环境
python3 -m venv myenv

# 激活虚拟环境(Linux/macOS)
source myenv/bin/activate

# 激活虚拟环境(Windows)
.\myenv\Scripts\activate

在虚拟环境中,我们可以安装Django:

pip install Django

这将会安装Django并且保证它不会影响到系统中的其他Python项目。

创建项目

安装完成后,我们可以使用Django的命令行工具来创建一个新的项目:

django-admin startproject myproject

这将会在当前目录下创建一个名为myproject的文件夹,其中包含了管理Django项目所需的一些文件。

创建应用

在Django中,一个项目可以包含多个应用,每个应用都是一个Python模块,包含了视图、模型、模板、路由等一系列功能。我们首先创建一个名为myapp的应用:

cd myproject
python manage.py startapp myapp

这会在myproject目录下创建一个myapp的目录,包含了管理应用所需的一些文件。

定义视图

接下来,我们需要定义视图来处理HTTP请求。在myapp/views.py文件中,我们可以定义一个视图来处理GET和POST请求:

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def hello(request):
    if request.method == 'GET':
        return JsonResponse({'message': 'Hello, Django!'})
    elif request.method == 'POST':
        return JsonResponse({'message': 'POST request received.'})

这里,我们使用了JsonResponse来返回JSON响应,用@csrf_exempt来豁免CSRF保护,以便于我们在测试时能方便地发送POST请求。

配置路由

视图定义完成后,我们还需要配置路由来将URL映射到视图。在myapp/urls.py

文件中,我们可以定义路由:

from django.urls import path

from . import views

urlpatterns = [
    path('hello/', views.hello),
]

然后,在myproject/urls.py文件中,我们需要包含myapp的路由:

from django.urls import include, path

urlpatterns = [
    path('myapp/', include('myapp.urls')),
]

这样,访问/myapp/hello/URL时,就会调用我们定义的hello视图。

启动服务

最后,我们可以启动Django服务来测试我们的应用:

python manage.py runserver

现在,你可以使用浏览器访问http://localhost:8000/myapp/hello/,你将看到返回的{"message": "Hello, Django!"}。你也可以使用工具(如curl或Postman)发送POST请求,你将看到返回的{"message": "POST request received."}

恭喜你!你已经成功地从零开始部署了一个使用Django框架的Python服务。

项目文件夹和代码一览

最后提供给大家,在我们的Django项目中,我们会看到以下文件结构:

myproject/
├── manage.py
├── myapp/
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations/
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
└── myproject/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

在这个结构中,我们主要关注的是myapp/views.pymyapp/urls.py,和myproject/urls.py这三个文件,因为这三个文件是我们在部署Django服务中修改的主要文件。

myapp/views.py

myapp/views.py文件中,我们定义了一个hello视图来处理GET和POST请求。完整的代码如下:

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def hello(request):
    if request.method == 'GET':
        return JsonResponse({'message': 'Hello, Django!'})
    elif request.method == 'POST':
        return JsonResponse({'message': 'POST request received.'})

myapp/urls.py

myapp/urls.py文件中,我们定义了一个路由来将/hello/的URL映射到hello视图。如果文件不存在,请创建并添加以下内容:

from django.urls import path

from . import views

urlpatterns = [
    path('hello/', views.hello),
]

myproject/urls.py

myproject/urls.py文件中,我们包含了myapp的路由,将所有以/myapp/开头的URL映射到myapp的路由。完整的代码如下:

from django.urls import include, path

urlpatterns = [
    path('myapp/', include('myapp.urls')),
]

以上便是我们创建的Django服务的全部代码和文件结构。

如有帮助,请多关注 个人微信公众号:【Python全视角】 TeahLead_KrisChang,10+年的互联网和人工智能从业经验,10年+技术和业务团队管理经验,同济软件工程本科,复旦工程管理硕士,阿里云认证云服务资深架构师,上亿营收AI产品业务负责人。

标签:myapp,views,Python,py,Django,零到,urls,hello
From: https://blog.51cto.com/u_15863876/6618559

相关文章

  • Python Django 零基础从零到一部署服务,Hello Django!全文件夹目录和核心代码!
    在这篇文章中,我将手把手地教你如何从零开始部署一个使用Django框架的Python服务。无论你是一个刚开始接触开发的新手,还是一个有经验的开发者想要快速了解Django,这篇教程都会为你提供一条清晰的路径。我们将从环境搭建开始,一步一步地创建一个可以处理GET和POST请求的服务,让你能在实......
  • Python递归算法从入门到精通
    递归是一种常见且重要的算法设计和解决问题的方法。它通过将问题分解为规模更小的子问题,并通过解决子问题来解决原始问题。递归算法的关键在于找到递归终止条件和递归调用的方式。本文将介绍递归的基本原理、应用场景,并通过相关的Python代码示例详细讲解递归算法的使用。一、递归......
  • Python爬虫简易教程
    步骤1.获取编程软件Python3Pycharm社区版(可选,更方便代码编辑)Python软件包requestsselenium requests和selenium的区别对于“xxx.html”类型地址的网页,他们的内容是静态的,这种网站一般不会做防护,可以直接用requests爬。其他类型的内容用selenium更节省时间一点。除......
  • Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|附代码
    要求撰写关于信贷风控模型的研究报告,包括一些图形和统计输出。在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何变化?有25个变量:ID: 每个客户的IDLIMIT_BAL: 金额SEX: 性别(1=男,2=女)4.教育程......
  • Python | import mmap模块详解(处理大文本)
    如果现在有一个需求,我们需要处理一个20G的大文件,我们会怎么处理呢?思考下,我们需要怎么实现这个功能。我们可能会这么实现:defget_datas():source_text_path="路径"withopen(source_text_path,'rb')asf:data=f.readlines()yielddataif__na......
  • python基础day36 软件开发架构
    软件开发架构网络编程:我们要基于网络来编写一款B/S或者C/S架构的软件,比如ATM,我们现在写的都是单机版本的,没有接入网络的系统,别人是无法访问到的目的:以ATM为例,现在我们想把之前写的ATM系统变成基于网络传输的,别人如果想用,就必须把客户端下载到本地电脑上,以登录为例,用户把用户名......
  • Python web 框架对比:Flask vs Django
    哈喽大家好,我是咸鱼今天我们从几个方面来比较一些现在流行的两个pythonweb框架——Flask和Django,突出它们的主要特性、优缺点和简单案例到最后,大家将更好地了解哪个框架更适合自己的特定需求参考链接:https://djangocentral.com/flask-vs-django-selecting-the-perfect-pyt......
  • flask run 和python xxx 两种方式的区别
    在Flask项目中,flaskrun和pythonxxx(其中xxx是Python文件名)是两种不同的方式来运行Flask应用程序。flaskrun:这是Flask提供的命令行工具,用于在开发环境中运行Flask应用程序。当你在项目目录下运行flaskrun命令时,Flask会自动检测应用程序的入口文件(通常是app......
  • python requests
    参考资料菜鸟Pythonrequests模块PythonRequests库进阶用法——timeouts,retries,hooks中文文档地址:http://cn.python-requests.org/zh_CN/latest/英文文档地址:https://2.python-requests.org/en/master/api/后台接口packagecom.laolang.shop.modules.admin.controller;imp......
  • python连接Oracle数据库实现数据查询并导入MySQL数据库
    1.项目背景由于项目需要连接第三方Oracle数据库,并从第三方Oracle数据库中查询出数据并且显示,而第三方的Oracle数据库是Oracle11的数据库。而django4.1框架支持支持Oracle数据库服务器19c及以上版本,需要7.0或更高版本的cx_OraclePython驱动;django3.2支持Oracle数据库......