同福

Python开发web应用框架Django4.0学习笔记【20220831】

介绍

介绍

最近需要开发一个web工具,由于这个工具已经通过Python开发过一个命令行版本了,如果要换其他语言又要重新来过,这个太麻烦了。

后来想到Python能不能直接开发web应用呢?结果从网上一搜:大把的教程告诉你如何使用Python开发web应用。其中Django的风评是非常好的,既然如此,那福哥就决定用它了~~

安装django

福哥这里以Django4.0为例,因为其他版本都比较老旧了在此福哥不去介绍了。

pip3 install django==4.0

home/topic/2022/0830/19/8ad57ae1c52e1e024108f22bfcb3bcc0.png

创建django项目

创建项目

进入站点群目录(就是部署站点的父目录)。

cd /tongfu.net/web/

创建一个项目tfums。

django-admin startproject tfums

进入站点tfums目录。

cd tfums/

创建一个应用user。

python3 manage.py startapp user

home/topic/2022/0831/14/ef752251a8bb5271261075061f946aad.png

配置应用

打开tfums/settings.py,设置ALLOWED_HOSTS为任意主机。

ALLOWED_HOSTS = ["*"]

打开tfums/settings.py,在INSTALLED_APPS里添加user.apps.UserConfig设置。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user.apps.UserConfig',
]

home/topic/2022/0831/14/16950ba1afb9ce109e44bdf0b3e45bff.png

数据迁移

福哥暂时没有弄明白这个是干嘛的,但是启动项目的时候会提示要求执行这个。。

python3 manage.py migrate

home/topic/2022/0831/14/e0a6cf439e94735a6cc374458bd2dcf9.png

启动Django项目

启动项目

进入站点tfums目录。

cd /tongfu.net/web/tfums/

启动tfums项目。

python3 manage.py runserver 0.0.0.0:80

home/topic/2022/0831/14/0b2163ef7093f0d05de114efcf8ff511.png

使用浏览器查看(注意:福哥是在Linux下配置的Django环境需要一个端口映射,这里才使用0.0.0.0这个泛IP作为服务器IP地址的,因为默认django会使用12.0.0.1这个本地IP地址)。

福哥将容器里的80端口映射到了TFLinux的8888端口上面了,所以这里使用8888端口访问Django站点。

home/topic/2022/0831/15/3a26f4a4f5877394e22727b9c578ce0a.png

视图

函数视图Function views

使用一个类的一个方法作为响应请求的控制器。

建立fun_view模块

首先在tfums目录下面建立fun_view.py,编写如下代码:

from django.http import HttpResponse

def test(request):
    return HttpResponse("test of fun_view from tongfu.net")

映射fun_view模块

接着在tfums/urls.py里引入fun_view模块。

from tfums import fun_view

然后在tfums/urls.py的urlpatterns里添加映射规则,将网址/fun_view/test映射到fun_view.test上面。

path('fun_view/test', fun_view.test, name='test'),

效果

现在在浏览器上面输入路径http://192.168.168.88:8888/fun_view/test

home/topic/2022/0831/16/b96ecacd30ac75900f532968d8d2f27e.png

类视图Class-based views

使用一个类作为响应请求的控制器。

建立cls_view模块

首先在tfums目录下面建立cls_view.py,编写如下代码:

from django.views.generic.base import TemplateView
from django.http import HttpResponse

class demo(TemplateView):
    def get(self, request):
        return HttpResponse("demo of cls_view by get from tongfu.net")
    def post(self, request):
        return HttpResponse("demo of cls_view by post from tongfu.net")

映射cls_view模块

接着在tfums/urls.py里引入cls_view模块的demo对象。

from tfums import cls_view

然后在tfums/urls.py的urlpatterns里添加映射规则,将网址/cls_view/demo映射到demo对象上面。

path('cls_view/demo/', cls_view.demo.as_view(), name='demo'),

效果

现在在浏览器上面输入路径http://192.168.168.88:8888/cls_view/demo

home/topic/2022/0831/16/06e80e3bccfacf0aca211eed29dffc3b.png

包含视图Including another URLconf

包含一个应用的urls.py配置文件,使用它来响应请求。

编辑user/views模块

编辑user/views.py,加入如下引用。

from django.http import HttpResponse

然后在建立test函数。

def test(request):
    return HttpResponse("test of app user from tongfu.net")

建立user/urls映射控制器

建立user/urls.py映射控制器,加入如下引用。

from django.urls import path
from user import views

然后添加映射规则。

urlpatterns = [
    path('test', views.test, name='test')
]

映射user应用

在tfums/urls.py里添加如下引用。

from django.conf.urls import include

然后在tfums/urls.py的urlpatterns里添加映射规则,将网址/inc_view/user映射到user应用上面。

path('inc_view/user/', include('user.urls')),

效果

现在在浏览器上面输入路径http://192.168.168.88:8888/inc_view/user/test

home/topic/2022/0831/16/85edc52f9c24f37c38211f55b90e8282.png

总结

今天福哥带着大家学习了Python开发web应用的框架Django4.0的技巧,大家可以通过这个教程了解到Django如何实现Python开发web应用的。

福哥还研究了Django的三种映射方式,并且编写了三种映射方式的开发实例,大家可以根据自己的情况设计自己的模块路径结构。

后面福哥还会陆续地讲解如何使用Django开发web应用,敬请期待吧~~