介绍
介绍
最近需要开发一个web工具,由于这个工具已经通过Python开发过一个命令行版本了,如果要换其他语言又要重新来过,这个太麻烦了。
后来想到Python能不能直接开发web应用呢?结果从网上一搜:大把的教程告诉你如何使用Python开发web应用。其中Django的风评是非常好的,既然如此,那福哥就决定用它了~~
安装django
福哥这里以Django4.0为例,因为其他版本都比较老旧了在此福哥不去介绍了。
pip3 install django==4.0
创建django项目
创建项目
进入站点群目录(就是部署站点的父目录)。
cd /tongfu.net/web/
创建一个项目tfums。
django-admin startproject tfums
进入站点tfums目录。
cd tfums/
创建一个应用user。
python3 manage.py startapp user
配置应用
打开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', ]
数据迁移
福哥暂时没有弄明白这个是干嘛的,但是启动项目的时候会提示要求执行这个。。
python3 manage.py migrate
启动Django项目
启动项目
进入站点tfums目录。
cd /tongfu.net/web/tfums/
启动tfums项目。
python3 manage.py runserver 0.0.0.0:80
使用浏览器查看(注意:福哥是在Linux下配置的Django环境需要一个端口映射,这里才使用0.0.0.0这个泛IP作为服务器IP地址的,因为默认django会使用12.0.0.1这个本地IP地址)。
福哥将容器里的80端口映射到了TFLinux的8888端口上面了,所以这里使用8888端口访问Django站点。
视图
函数视图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。
类视图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。
包含视图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。
总结
今天福哥带着大家学习了Python开发web应用的框架Django4.0的技巧,大家可以通过这个教程了解到Django如何实现Python开发web应用的。
福哥还研究了Django的三种映射方式,并且编写了三种映射方式的开发实例,大家可以根据自己的情况设计自己的模块路径结构。
后面福哥还会陆续地讲解如何使用Django开发web应用,敬请期待吧~~