0


Python教程(十八): 从零到一教会你用 Django【Web 开发】

文章目录

专栏列表

  • Python教程(十):面向对象编程(OOP)
  • Python教程(十一):单元测试与异常捕获
  • Python教程(十二):面向对象高级编程详解
  • Python教程(十三):常用内置模块详解
  • Python教程(十四):Requests模块详解
  • Python教程(十五):IO 编程
  • Python教程(十六):进程、线程、线程锁
  • Python教程(十七):协程、 asyncio与 aiohttp【异步IO】

在这里插入图片描述

正文开始

如果觉得文章对您有帮助,请帮我三连+订阅,谢谢

💖💖💖


前言

在当今的软件开发领域,Web 开发仍然是最受欢迎的方向之一。Python,作为一种简洁而强大的编程语言,通过其丰富的框架和库,为 Web 开发提供了强大的支持。本文将带你了解 Python 在 Web 开发中的应用,包括流行的框架、开发工具以及最佳实践。

Web 开发是指创建和维护网站和 Web 应用程序的过程。它通常分为

前端开发

后端开发

前端关注用户界面和用户体验,而后端则处理服务器、数据库和应用程序逻辑。

1. 流行的 Python Web 框架

1.1 Django

Django 是一个高级的 Python Web 框架,它鼓励快速开发和干净、实用的设计。Django 自带了许多内置功能,如用户认证、内容管理、站点地图等。

1.2 Flask

Flask 是一个轻量级的 Web 框架,它提供了必要的工具来快速开发 Web 应用。Flask 的灵活性和简洁性使其成为小型项目和微服务的理想选择。

1.3 FastAPI

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API。它基于标准 Python 类型提示,支持异步编程,非常适合构建高性能的 API 服务。

2. 开发环境搭建

2.1 安装 Python

首先,确保你的开发环境中安装了 Python。可以从Python 官网下载并安装。

2.2 安装 Django

  • pip install命令执行后,如果是项目中安装除了会再Libs/site-package里面添加django包之外,还会在Scripts文件夹中创建一个django-admin.exe文件,这个文件是个命令行工具,能够帮我们直接创建django项目
  • 会在 python的安装目录下的 Scripts 下新增 django-admin.exe,这样就能全局使用 django-admin``````(推荐使用)
pip install Django

**还可以新建一个虚拟化环境:(

避免污染全局

)**

python -m venv test-env
# source test-env/bin/activate  # 在 Unix 或 MacOS 上
test-env\Scripts\activate  # 在 Windows 上# 在新的环境中执行安装和初始化项目
pip install Django

3. 初始化 Web 应用

3.1 创建 Django 应用

创建一个 Django 项目和应用,然后运行开发服务器。

django-admin startproject djangoDemo 
cd djangoDemo

3.2. 运行

py manage.py runserver
# 默认8000 也可以指定修改# py manage.py runserver 8080 

在这里插入图片描述

在这里插入图片描述

3.3 项目解析:

目录结构:

djangoDemo
├───manage.py  # 启动一个 web 服务器
└───djangoDemo
        settings.py  # 网站的配置数据
        asgi.py
        urls.py  # 包含urlresolver所需的模型的列表。.
        wsgi.py
        __init__.py

4. 创建 Django 应用

4.1 创建应用

在 Django 项目中,一个应用是一个专门用来完成某项任务的小包。运行以下命令来创建一个应用:

python manage.py startapp myapp

这将创建一个名为

myapp

的目录。
目录结构:

djangoDemo
├── djangoDemo
|       __init__.py
|       settings.py
|       urls.py
|       wsgi.py
├── manage.py
└── myapp
    ├── migrations
    |       __init__.py
    ├── __init__.py
    ├── admin.py
    ├── models.py
    ├── tests.py
    └── views.py

4.2 注册应用

myproject/settings.py

文件中,将新创建的应用添加到

INSTALLED_APPS

列表中:

INSTALLED_APPS =[# ...'myapp',]

5. 创建测试页面

5.1 定义 URL

myapp

目录中,创建一个

urls.py

文件,并定义两个 URL 模式:

from django.urls import path
from.import views

urlpatterns =[
    path('home/', views.home, name='home'),
    path('about/', views.about, name='about'),]

5.2 包含应用的 URL

djangoDemo/urls.py

文件中,包含

myapp

的 URL 配置:

from django.contrib import admin
from django.urls import include, path

urlpatterns =[
    path('admin/', admin.site.urls),# 默认自带的
    path('', include('myapp.urls')),# 包含 myapp 的 URL]

5.3 创建视图

myapp/views.py

文件中,创建两个视图函数:

from django.http import HttpResponse

defhome(request):return HttpResponse("Welcome to the Home Page!")defabout(request):return HttpResponse("Welcome to the About Page!")

5.4 创建模板(可选)

为了使页面更加美观,你可以创建 HTML 模板。在

myapp

目录下创建一个

templates

目录,并在该目录下创建两个 HTML 文件:

home.html

:

<!DOCTYPEhtml><html><head><title>Home Page</title></head><body><h1>Welcome to the Home Page template!</h1></body></html>
about.html

:

<!DOCTYPEhtml><html><head><title>About Page</title></head><body><h1>Welcome to the About Page!</h1></body></html>

然后,在

views.py

中修改视图函数以使用模板:

from django.shortcuts import render

defhome(request):return render(request,'home.html')defabout(request):return render(request,'about.html')

6. 运行和测试

确保你的开发服务器正在运行,然后在浏览器中访问以下 URL 来查看你的页面:

  • http://127.0.0.1:8000/home/在这里插入图片描述
  • http://127.0.0.1:8000/about/ - 将显示 “Welcome to the About Page!”在这里插入图片描述

7. Django模板:

基础语法

  • 获取变量: 使用两个大括号, 并将变量包含在里面 {{ name}}
  • 循环集合:所有的在{% for %}{% endfor %} 之间的内容将会被Django对象列表中的每个对象所代替
{%for post in posts %}{{ post }}{% endfor %}

数据传输至模板

修改之前的

home.html 

hom

函数

#view.pydefhome(request):# 第三个参数就是给模板传值return render(request,"home.html",{"title":"数字列表","list":[1,2,3,4]})

home.html

<!DOCTYPEhtml><html><head><title>Home Page</title></head><body><h1>Welcome to the Home Page template!</h1><p>{{title}}</p><ul>
        {% for item in list %}
        <li>{{ item }}</li>
        {% endfor %}
    </ul></body></html>

在这里插入图片描述

静态文件处理:

在 myapp 应用下创建一个

static/image

目录,放入一个

js.png

文件,
在 home.html 文件的顶部放入

{% load static %}

, 在html文件需要的地方放置

{% static '文件路径' %}

,插入文件模板语法

{% load static %}
<!DOCTYPEhtml><html><head><title>Home Page</title></head><body><imgsrc="{% static 'image/js.png' %}"/><h1>Welcome to the Home Page template!</h1><p>{{title}}</p><ul>
        {% for item in list %}
        <li>{{ item }}</li>
        {% endfor %}
    </ul></body></html>

在这里插入图片描述

模板复用:

  1. myapp/templates/ 新建一个base.html 作为其他html的模板
  2. 在模板中创建block, {% block content %} {% endblock %} , 这个 content 可以随意修改
  3. 修改home.html , 文件头部引用{% extends 'base.html' %} , 文件内部的代码段需要使用 {% block title %} {% endblock %} 包裹

详细代码:
base.html

{% load static %}
<!DOCTYPEhtml><html><head><title>Home Page</title></head><body><imgsrc="{% static 'image/js.png' %}"/>
    {% block title %}
    {% endblock %}
    <hr/>
    {% block list %}
    {% endblock %}
    <p>footer text </p></body></html>

home.html

{% extends 'base.html' %}
{% block title %}
<h1>Welcome to the Home Page template!</h1>
{% endblock %}
{% block list %}
<p>{{title}}</p><ul>
    {% for item in list %}
    <li>{{ item }}</li>
    {% endfor %}
</ul>
{% endblock %}

在这里插入图片描述

路由跳转

  1. 语法:{%url 'path' 参数的key=value %} , 示例: <a href="{%url 'about' index=item name='ziyu' %}">点击查看详情</a>
  2. 修改myapp/urls.py , re_path(r'about/(?P<index>[0-9]+)/(?P<name>\w+)/$', views.about, name='about') + 使用 res_path 使用正则规范参数,P<index> 设置参数名为 index
  3. 修改view.py 文件,给about函数添加参数: def about(request,index,name):

示例代码:

home.html

{% extends 'base.html' %}

{% block title %}
<h1>Welcome to the Home Page template!</h1>
{% endblock %}

{% block list %}
<p>{{title}}</p><ul>
    {% for item in list %}
    <li>{{ item }}. <ahref="{%url 'about' index=item name='ziyu' %}">点击查看详情</a></li>
    {% endfor %}
</ul>
{% endblock %}

views.py

defabout(request,index,name):return render(request,"about.html",{"index":index ,"name":name})

about.html

<!DOCTYPEhtml><html><head><title>About Page</title></head><body><h1>Welcome to the About Page!</h1><p>index:{{index}}</p><p>name:{{name}}</p></body></html>

在这里插入图片描述
在这里插入图片描述

8. django部署

  1. 将项目推送到github上,然后clone 项目地址 使用 pythonanywhere 来部署项目 先创建账号,登录的时候是 使用用户名+密码登录在这里插入图片描述
  2. 登录成功进入控制台
  3. 点击Console中的$Bash 打开一个控制台在这里插入图片描述
  4. 分别运行下面命令
git clone https://github.com/jiatingyu/djangoDemo.git
cd djangoDemo
python -m venv myenv
source myvenv/bin/activate
pip install django  #等待安装成功
  1. 退出控制台,进入 web apps , 有 3 个位置需要设置,参考截图,一般就将用到 ziyubro 换成你自己的用户名

6.1 Code , 设置好

Source code

,

Working directory

, 修改你们username,编辑

WSGI configuration file:

在这里插入图片描述
configuration file修改的代码:

import os
   import sys

   # assuming your django settings file is at '/home/ziyubro/mysite/mysite/settings.py'# and your manage.py is is at '/home/ziyubro/mysite/manage.py'
   path ='/home/ziyubro/djangoDemo'if path notin sys.path:
   sys.path.append(path)

   os.environ['DJANGO_SETTINGS_MODULE']='djangoDemo.settings'# then:from django.core.wsgi import get_wsgi_application
   application = get_wsgi_application()

6.2 修改 Virtualenv:
在这里插入图片描述
6.3 设置 static Files:
在这里插入图片描述

  1. 在最顶上点击 reload在这里插入图片描述
  2. 修改设置

最后

djangoDemo/settings.py

文件中,找到

ALLOWED_HOST 

数组,在数组中添加 现有域名,ps:

["ziyubro.pythonanywhere.com"]
  1. 预览:在这里插入图片描述

9. 总结

通过本教程,你已经成功搭建了一个 Django 项目,并创建了两个简单的测试页面。Django 的强大功能和灵活性使其成为 Web 开发的优选框架。你可以继续探索 Django 的更多高级特性,如模型、表单、类视图等,来构建更复杂的 Web 应用程序。

10. 参考资源

  • Django 官方文档
  • Django 教程
  • Two Scoops of Django
  • Flask 官方文档
  • FastAPI 官方文档
  • Python 官方文档
标签: python django 前端

本文转载自: https://blog.csdn.net/cdns_1/article/details/141863028
版权归原作者 子羽bro 所有, 如有侵权,请联系我们删除。

“Python教程(十八): 从零到一教会你用 Django【Web 开发】”的评论:

还没有评论