Python学习之旅(五) Python Web开发入门

PythonWeb开发项目完整案例(详细教程) PythonWeb开发是使用Python语言进行Web应用程序开发的过程。Python是一种简洁、易读且功能强大的编程语言,因此在Web开发领域广受欢迎。 阅读详情

进入本章,我们即将启程探索Python Web开发的精彩领域,特别关注Flask和Django这两个备受推崇的框架。无论您目前是编程新手,还是希望将您的Python技能扩展到Web开发领域,这一章都将为您提供一个扎实的起点。我们将从如何使用Flask构建简洁的Web应用开始,逐步过渡到利用Django开发功能更为丰富、结构更为复杂的网站。

5.1 Flask框架基础

Flask是一个轻量级的Python Web框架,它的“微”指的是保持核心简单但可扩展。Flask依赖于Werkzeug WSGI工具箱和Jinja2模板引擎。适合于小型项目和微服务,以及作为大型应用的一个组件。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/436a5af1c60246b5ab67a835b68e2a2e.png

5.1.1 创建一个简单的Web应用

Flask让你能够通过简单的Python代码快速创建一个Web应用。

步骤详解:

  1. 安装Flask: 首先需要使用pip安装Flask。

    pip install Flask
    
  2. 创建Flask实例: 在Python脚本中导入Flask并创建一个Flask应用实例。

  3. 定义路由和视图函数: 路由将URL映射到特定的函数,这个函数称为视图函数,用于生成页面的响应。

  4. 运行应用: 最后,使用run方法启动Flask应用的服务器。

# 导入Flask类
from flask import Flask

# 创建Flask应用实例
app = Flask(__name__)

# 定义路由和对应的视图函数
@app.route('/')
def home():
    return 'Welcome to Flask!'

# 运行Flask应用
if __name__ == '__main__':
    app.run(debug=True)
  • 在这个示例中,我们首先导入了Flask类并创建了一个Flask应用实例。接着,我们使用@app.route装饰器定义了一个路由,它告诉Flask当用户访问网站主页(即URL路径为’/')时应该执行home函数。home函数返回了一个简单的字符串响应,当访问主页时,这个字符串会显示在Web浏览器中。最后,通过if __name__ == '__main__':确保当脚本被直接执行时,Flask服务器会以调试模式启动。

5.1.2 路由和视图

在Flask中,路由是使用app.route装饰器来定义的,它将URL规则映射到视图函数。视图函数返回的内容可以是简单的文本、HTML页面或者重定向到其他页面。

路由参数: Flask允许在路由中使用变量部分,例如/user/<username>,这使得URL可以是动态的,能够接收参数。

# 定义带参数的路由
@app.route('/user/<name>')
def user(name):
    return f'Hello, {name}!'
  • 这个示例展示了如何定义一个带参数的路由。当用户访问如/user/Alice的URL时,user视图函数会被调用,name参数的值会被设置为"Alice"。然后,函数返回一个个性化的问候消息,包含了通过URL传递的参数。

5.1.3 模板

Flask使用Jinja2模板引擎来渲染模板。模板是包含响应文本的文件,其中可以包含Python-like的表达式。使用模板可以将Python代码和HTML页面分离,使得Web应用更易于维护。

模板使用: 将HTML页面保存为.html文件,并存放在Flask应用的templates文件夹下。可以使用render_template()函数来渲染模板文件,并传递需要在模板中使用的变量。

# main.py
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/hello/<user>')
def hello_name(user):
    return render_template('hello.html', name=user)
<!-- hello.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Flask App</title>
</head>
<body>
    <h1>Hello {{ name }}!</h1>
</body>
</html>
  • 在这个示例中,当用户访问如/hello/Alice的URL时,hello_name视图函数被调用,同时user参数的值被传递给render_template()函数。render_template()函数随后渲染hello.html模板,将name变量的值设置为"Al
    ice",生成的HTML页面会包含个性化的问候消息。

5.2 Django框架基础

Django是一个高级的Python Web框架,旨在快速开发安全且可维护的Web应用。它遵循"MTV"模式(模型-模板-视图)。
在这里插入图片描述

5.2.1 Django项目结构

Django项目由多个应用组成,每个应用执行一个特定的功能。一个典型的Django项目包含项目级配置(如设置和URL路由)和多个应用级组件(如模型、视图、模板)。

创建Django项目和应用:

  1. 安装Django: 使用pip安装Django。

    pip install django
    
  2. 创建项目: 使用django-admin startproject myproject命令创建一个新的Django项目。

  3. 创建应用: 在项目目录下,使用python manage.py startapp myapp命令创建一个新的应用。

项目和应用结构示例:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
    myapp/
        migrations/
        __init__.py
        admin.py
        apps.py
        models.py
        tests.py
        views.py
  • manage.py是Django项目的命令行工具,用于执行各种Django任务,如运行服务器、创建迁移等。settings.py包含项目的配置。urls.py定义了项目的URL路由。myapp/目录包含了应用的所有组件,如模型(models.py)、视图(views.py)和管理员界面配置(admin.py)。

5.2.2 模型和数据库操作

Django的ORM(对象关系映射)允许开发者以Python类的形式定义数据库模型。Django将自动将这些模型转换成数据库表。

定义模型:

# myapp/models.py
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    publish_date = models.DateField()

执行迁移: 定义模型后,需要通过迁移将模型的更改应用到数据库。

  1. 生成迁移文件:python manage.py makemigrations
  2. 应用迁移到数据库:python manage.py migrate

操作数据: Django的ORM提供了丰富的API来创建、检索、更新和删除数据库中的记录。

# 创建一个新的书籍记录
Book.objects.create(title="Django for Beginners", author="William S. Vincent", publish_date="2018-02-01")

# 检索所有书籍
Book.objects.all()

5.2.3 Django后台管理

Django提供了一个功能强大的自动生成的管理界面,使得对数据库中的数据进行增删改查变得非常简单。

激活管理员界面:

  1. 创建超级用户:python manage.py createsuperuser

  2. 在应用的admin.py中注册模型:

    from django.contrib import admin
    from .models import Book
    
    admin.site.register(Book)
    
  3. 访问http://localhost:8000/admin并使用超级用户登录,你将能看到一个友好的界面来管理Book模型的记录。

祝贺您步入Python Web开发的世界!在这一章中,我们介绍了Flask和Django,两个让Web开发变得简单而强大的框架。从搭建基本的Web服务器到创建动态网页,您现在已经具备了用Python构建Web应用的初步知识。随着您不断实践和探索,将有能力开发出更加复杂和精致的Web项目。

Flask之旅《Flask Web开发:基于Python的Web应用开发实战》学习笔记 Flask 搭建博客网站 用户自定义头像 数据库模型,自动产生EER 阅读详情

相关推荐

Python学习之旅(一) 开始Python之旅

Python是一种广泛使用的高级编程语言,其设计哲学强调代码的可读性与简洁性。选择Python作为编程学习的起点有许多理由,特别适合计算机初学者。:Python在多个领域都有广泛的应用,包括但不限于web开发、数据科学、人工智能、机器学习、网络编程和自动化脚本等。这意味着学习Python可以为您打开通往多个行业的大门。

code_magic的博客 2117

如何用Python写一个Web应用?

首先,要在网络上进行通信,就需要有相关网络协议,例如TCP/IP,UDP……等等。 当然你可以说我直接选用一个框架作为开始,不想了解这么多东西。那样也没问题,不过到一定的时间,相信你还是会愿意回过头来看一看这些基础知识的。 提到网络编程,你一定见过Socket,翻译过来是套接字。这个是啥,相信你也和我一样在初见到它的时候一头雾水,我觉得是翻译的不好,引用一段我觉得还算不错的解释: Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道

qingboxueyuan的博客 5551

HFSS新手避坑指南:从零搭建T形波导功分器(含参数扫描与优化实战)

本文为HFSS新手提供T形波导功分器设计的详细指南,涵盖基础设置、建模技巧、参数扫描与优化实战。重点解析内场分析中的常见陷阱,如单位设置、波端口定义和布尔运算错误,并分享优化设计的关键步骤,帮助工程师快速掌握HFSS在微波器件设计中的应用。

weixin_27442001的博客 138

超详细!小白入门PythonWeb开发详解!

FastAPI 是 Python 开发的一个开源 Web 框架,几乎包括了 Web 应用的所有内容,可用于快速搭建高性能、优雅的网站应用。最主要的是,FastAPI 提供了 Web 开发经常使用到的模块,包括自动生成接口文档等,使开发者能够专注业务部分。

weixin_68789096的博客 1万+

大疆 DJI Mobile SDK实战指南——从零构建Android示例开发环境

本文提供了一份详尽的DJI Mobile SDK Android开发环境搭建实战指南。文章手把手教你从注册开发者账号、获取App Key,到配置Android Studio、下载官方示例代码,最终成功运行DJI官方Android示例程序,帮助开发者快速入门无人机应用开发,避开常见编译与依赖问题。

weixin_29188043的博客 275

C语言的文件读取与写入操作

学了一年的C语言了,现在回过头来做一下总结。并且博客开了挺长一段时间却没有谢什么实际的东西。现在做下总结,对之后的学习帮助应该挺大的。与大家共勉! 现在,我先来介绍一下C语言的文件读取与写入的原理和具体操作方法。 C语言文件读取与写入是通过将文件看成一个字符序列进行读入和写出的。所以读取与写入文件就用到了指针,而这个指针是一个特殊的指针,我们称为文件指针。 指针名称是

wzyxdwll的博客 3万+

目前最受欢迎的12个Python web框架,你用过几个?

Python作为胶水语言,随AI时代来临备受追捧。其发展方向有很多的,比如:爬虫、数据分析、自动化测试、人工智能、运维还有web开发等。 Python程序员有很多很好的选择来创建Web应用程序和API;Django...

cky8792的博客 4185

进程间通信的七种方法实战演示!值得收藏!

线程和进程间的通讯(Inter-Process Communication, IPC)是操作系统中的一个重要概念,用于实现不同进程或同一进程中的不同线程之间的数据交换和协调。以下是几个常见的进程间通信的方式:管道、消息队列、共享内存、信号、套接字、信号量、文件映射

十年饮冰,难凉热血,保持热爱,奔赴星海! 2816

最全整理!37 个 Python Web 开发框架总结!

大家好,用了 2 周的时间整理了 Python 中所有的网站开发库(下文简称:Web 框架),供大家学习参考。Q:Web 框架到底是什么?A:Web 框架主要用于网站开发。开发者在基于 Web 框架实现自己的业务逻辑。Web 框架实现了很多功能,为实现业务逻辑提供了一套通用方法。Q:Web 框架有什么作用?A:使用 Web 框架,很多的业务逻辑外的功能不需要自己再去完善,而是使用框架已有的功能就可以。Web 框架使得在进行 网站开发的时候,减少了工作量。Q:我们为什么要使用 Web 框架?

m0_59596937的博客 2万+

硬件原理图分析

文章目录1 硬件原理图分析1.1 MCU部分1.2 NB部分1.3 电源部分 1 硬件原理图分析 1.1 MCU部分 MCU接口部分没啥需要注意,都是常规操作。 1.2 NB部分 U4是用来防静电的。 由于NB的以上几个引脚只支持1.8V,所以这里需要3.3V转1.8V的电路。只要把握住谁改变电平就好分析是怎么实现电平转换的了。 1.3 电源部分 图中的MOS是用来实现USB和电池同时插入时只能USB供电功能的。 ...

木子皿--啥都不会的菜鸟 8174

Android 13 内置xapk安装包的方法

安装xapk 内置xapk

安卓兼职framework和app工程师的博客 224

01 如何学习Python Web开发从入门到实战

Python Web开发从入门到实战,适用于新手以及具有一定计算机基础。

Cys_33的博客 5383

从数据到行动:客服运营必分析的8大核心维度

服务运营正从被动响应升级为数据驱动型战略体系。客服中心的海量交互数据能精准反映服务效能、客户体验及运营短板,关键在于实现数据的可视化与可操作化。本文系统剖析了八类核心数据指标:1)客户行为数据(CSAT/NPS/投诉内容);2)通话效率指标(AHT/接通率);3)服务质量(质检体系/情绪识别);4)坐席绩效(FCR/客户评价);5)流程与知识库(转接率/工单时效);6)渠道流量分析;7)异常预警机制;8)成本收益模型。通过构建多维数据分析体系,企业可在客户全生命周期管理中实现服务升级、风险防控与资源

2202_75469062的博客 1401

Python 学习之旅:从入门到高级的详细学习计划

无论你是想开启编程之旅的初学者,还是希望提升 Python 技能的进阶开发者,制定一个系统的学习计划都至关重要。本文将为你精心规划一个从 Python 入门、进阶到高级的详细学习路径,帮助你循序渐进地掌握 Python 的精髓,为你在编程世界中开辟一条清晰且高效的成长之路。在这个学习计划中,我们将根据不同的学习阶段,为你明确列出所需学习的知识点,并提供相应的实践项目建议,让你在理论学习的同时,能将知识运用到实际操作中,真正做到学以致用。

happycell188的博客 1004

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

想从事Python后端开发?如何入门和学习,这篇文章来告诉你。

想从事Python后端开发的你,不知道如何入门和学习,但首先必须知道什么是“Python后端开发”。 1、什么是“Python后端开发” 刚开始接触软件行业的你,以前可能经常会被人问到:“你以后想走前端还是后端呢?”这对于刚入门的你来说,心里当时肯定在想:“啥意思呢?”在手机查完一番之后,才知道:前端原来就是网民在上网页时第一眼看到的页 面或是分支点信息页面等。或者是页面中的图片、文字、框架分配、视频、语音等整体布局都是前端。而后端就是网民第一眼是看不到的,一般只有部分专业人员才能大致看到。像语言编写、创建

我可以很大侠的博客 8261

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python Web开发从入门到放弃

作者 | sitin来源 | 涛哥聊Python(ID:programmer100)越来越多的同学知道我在做软件开发,想学Python,所以都来咨询我,怎么从入门到实践,...

Python大本营的博客 2241

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

用Python进行web开发需要学习什么?

第一步:HTML HTML是网页的核心,学好HTML是成为Web开发人员的基本条件。HTML很容易学习的,但也很容易误用,要学精还得费点功夫。   随着HTML5的发展和普及,了解HTML5也将成为Web开发人员的必修课。   涉及到网页外观时,就需要学习CSS了,它可以帮你把网页做得更美观。   利用HTML和CSS模拟一些你所见过的网站的排版和布局(色彩,图片,文字样式等等)。 第二步:学习javascript,了解DOM JavaScript是一种能让你的网页更加生动活泼的程序语言。学习JavaScr

贵在坚持 5329

Python Web开发入门教程(非常详细)

👉Python学习路线汇总👈Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)👉Python必备开发工具👈。

2301_82000445的博客 2368

如何学习Python Web开发从入门到实战

Python Web是学校所学的课程,我希望在学习的同时通过写笔记的形式来记录我学习以及由学校学习转而自身对此方向感兴趣的一个过程,更多还是让自己在课程结束之后进行一个小的总结来回顾、提高自己。当然也不会缺少我在学习过程中所碰到的一些问题的记录。 《Python Web开发从入门到实战》是作为我学习的参考资料,它可以快速地上手实战,这本书是以一个实际的企业门户网站为例展开,希望通过学习我也可以掌握Python Web的各个开发要点和难点。

m0_59162248的博客 496

python web开发从入门到精通,python web开发案例教程

欢迎来到本篇博客——“Python编程入门实战:打造你的第一个Web应用”。无论你是一个初学者,还是有一些编程基础的开发者,我相信你都可以在这篇文章中收获知识和启发。

2301_81895257的博客 918

使用Python进行Web开发:从入门到实战

使用Python进行Web开发:从入门到实战

lpl1123143的博客 3916

【Python Web开发】Python Web开发知识全解析

Web 开发是指使用编程语言和技术构建基于浏览器的应用程序。Web 应用程序是用户通过网络浏览器访问的动态页面,它可以提供诸如登录、数据提交、交互等功能。前端:涉及到用户在浏览器中看到并与之交互的部分,主要由 HTML、CSS、JavaScript 等构建。后端:负责处理业务逻辑、数据库交互、安全性等,Python 作为后端语言非常适合处理这些复杂的任务。Python Web 开发因其简洁性、可扩展性和强大的框架生态系统,成为了现代 Web 开发的重要选择。

萧鼎的博客 5105

python web开发需要学哪些-python web 开发学习路线

转载,备着自己目前学习python web 开发, 经过两个月的摸索,目前对web开发有了浅显的认识,把自己的学习过程贴出来。1.python入门推荐老齐《从零开始学python》,《python简明教程》,这两本书很适合小白入门(像我一样长期徘徊在编程门外的人)2.python进阶推荐《python学习手册》,python学习手册的前半部分与在入门教程中的基础部分相重复,后面部分对python的...

weixin_39717367的博客 664

python自学免费教程-怎样自学python编程?从零开始学习python,python开发入门到精通

我做为千万个零基础自学 Python 转行程序员的成功案例之一,在自学的过程中,踩过很多坑,整理过很多非常优质的免费资料,对于新手小白来说,这些资料一定可以为你提供参考。 如果你是小白,我给你整理了一条非常友好的学习路径,你按照这个路径去学习即可。 以下内容全程高能,请做好 点赞 和 收藏 的准备。。 1. 基础入门到进阶 一说到自学 Python,就会有很多人推荐廖雪峰,他的教程我从头到尾看过,个人不建议零基础的编程小白去看他的教程,他的教程更适合有点计算机基础的。 你一定会问,那我为什么还会去看他的教

Python_0011的博客 8813

【Python开发】Python入门

摘要:从基础到实践的全面学习路径 本文系统介绍了Python编程语言的学习路线,涵盖五大核心内容: 选择Python的优势:简单易学、应用广泛(AI/数据分析/Web开发)、丰富库资源和活跃社区 基础入门:安装配置、第一个程序、变量与数据类型(整型/浮点/字符串/布尔值) 基本语法:算术/比较/逻辑运算符,条件语句和循环结构 函数与模块:定义使用函数、导入标准库和第三方模块 实践拓展:通过简易计算器项目巩固知识,并推荐菜鸟教程、官方文档等优质学习资源 文章以实例驱动讲解,强调实践应用,适合零

大雨淅淅的博客 3917
上一篇: Python学习之旅(四) 数据处理基础
code_magic
博客等级 码龄3年 227粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值