第二章 创建第一个Python Web程序应用

目的:制作一个简单的欢迎网站,熟悉Python Web的基本开发流程以及掌握Django的基本结构和常用命令。

Python Web的基本开发流程可以概括如下六步骤:

创建Django项目–创建应用–制作访问界面html文件–编写试图处理函数(处理访问请求)-- 配置访问路由url – Web启动、关闭以及局域网手机访问

2.1 创建Django项目

D盘project目录下新建一个cysweb1文件夹,打开文件夹后在terminal终端新建一个名为w1的Django项目。

django-admin startproject w1
cd w1			//切换到该项目里
python manage.py runserver		//测试

请添加图片描述

2.1.2 了解Django项目的目录结构

在上一步创建好w1项目,VS Code会自动生成几个基本的配置文件如上图所示,我们也应该了解每个文件存在的意义。

①==init__.py==:标识文件,也可以是个空文件,若有需要的话再向里面写入 。主要用来表明当前所在的文件夹是一个python包,声明w1文件夹是一个独立的模块;

settings.py:用来配置整个全局的变量,其中包含各种应用、资源url、pattern等;

urls.py :用于 Web访问路由映射文件。创建的Web项目下所有的页面都应该在urls文件中来配置

wsgi.py:web server gateway interface,即Web服务器的网关接口,一般不需要做修改;

manage.py作为项目的主文件(main),用来执行与项目相关的一些重要命令,例如项目的启动、数据库的同步等等

其中settings.py和urls.py都是需要反复修改和编辑的文件。

2.2 创建应用

Django的一个重要修饰就是支持类似热插拔的app应用,Django项目和应用的关系可以总结如下:

  • 一个Django项目包含一组配置和若干个Django的应用;
  • 一个Django应用就是一个可以反复使用的python工具包;
  • 一个Django可以包含多个应用;
  • 一个应用也可以被包含到多个Django的项目中
python manage.py startapp app1
//在w1项目里新建一个应用app1

请添加图片描述

2.2.2 了解应用的目录结构

在创建好app之后,文件管理器里展开该应用可以看到如上图的几个python文件,对python文件了解概括如下:

①==—init—.py==:标识文件,也可以是一个空文件,起作用类似于项目里的同名文件;

admin.py : 管理员模块,也就是Django的每一个项目都会有一个强大的后台管理系统,需要注册什么数据信息就需要通过此文件来管理配置;

apps.py : 应用的配置文件,一般不需要修改;

models.py :数据库文件,管理数据库中的模型;

test.py:测试文件,在里面可以对应用做测试;

views.py:试图文件,定义了每个访问的处理函数,每个访问的路由与哪个函数绑定则需要由urls.py文件来控制;

migrations:数据库迁移文件夹,执行数据库迁移时后产生的中间结果则存在这个文件夹里面。

2.2.3 实现”热插拔“

在创建完应用我们应该将其应用添加到项目当中,在w1的settings.py文件夹里的INSTALLED_APPS字段里添加

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app1',			//添加你所创建的应用名称
]

请添加图片描述

2.3 制作访问界面html文件

在创建的app1应用下面要建一个templates文件夹,这是默认存放网站页面的文件夹,Django项目会自动寻找templates文件夹下面的页面资源,提高后续代码的简洁性,随后在templates文件夹下新建一个名为app1.html的文件,打开app1.html输入以下代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8" />
    <title>我的第一个页面</title>
</head>
<body>
    <h1>
        欢迎 app1用户的到来
    </h1>
</body>
</html>
如果HTML代码出现了排版格式混乱,就可以用beautify这个插件来实现对代码的自动对其排版,非常方便👏👏👏
2.4 编写试图处理函数(处理访问请求)

请添加图片描述

流程如上图,因此首先需要编写响应函数,打开app1应用下的views.py文件

from django.shortcuts import render  # 引入Django提供的渲染页面函数render,将网页内容转换成符合http传输的二进制文件
# 创建app1函数与request参数
def app1(request):
	return render(request,'app1.html')
2.5 配置访问路由url – Web启动

url是Web服务的入口,用户通过浏览器发送的任何请求,都要发送一个指定的url网址才可以被响应。通俗理解,url路由就是Web服务对外暴露的接口。w1子文件夹下的urls.py用来绑定每个request对应的处理函数,urlpatterns即为配置访问路由的字段

from django.contrib import admin
from django.urls import path
from app1.views import app1
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',app1,name='app1')		
    #引入前面创建的app1函数,urlpatterns字段中有两个路由,第一个路由创建Django默认提供,第二个手动添加。路由匹配采用了Python的正则函数,这里是直接将根网地址直接映射到app1函数里面。
]

请添加图片描述

2.6 Web启动、关闭以及局域网手机访问
python manage.py runserver
下图页面访问效果图

【局域网内访问】

如果开发电脑以及手机是处于同一个局域网中,可以在w1文件夹下找到settings.py文件中的ALLOWED_HOSTS字段,用该字段来设置允许接入Web应用的账户

ALLOWED_HOSTS = ['*',]
#设定为对该字段不作任何限制,所有用户都可以访问
python manage.py runserver 0.0.0.0:80
#用对应的局域网网址访问,端口用80或者8000

请添加图片描述

👏👏👏一个简单的应用就完成了,总体来看,开发服务器适合单机调试,在项目开发完成后应该将Web应用部署到生产服务器上才可以适合一般网站并发、稳定的访问需求。后续更新中…

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐