python开发网站多吗_手把手教你写网站:Python WEB开发技术实战

摘要:本文详细介绍了Python WEB开发的基础入门。以一个博客站点的开发为例讲解了基于Django框架开发WEB站点的全过程。通过本文的学习可以快速掌握基于Django的Python WEB的开发方法,进行WEB站点的实践开发。

数十款阿里云产品限时折扣中,赶紧点击这里,领劵开始云上实践吧!

演讲嘉宾简介:

韦玮,企业家,资深IT领域专家/讲师/作家,畅销书《精通Python网络爬虫》作者,阿里云社区技术专家。

本次直播视频精彩回顾,戳这里!

本节课代码及讲义下载,戳这里!

本次的分享主要围绕以下几个方面:

Python WEB开发技术简介

Django简介与环境配置与MVT设计模式简介

开发一个博客站点项目思路

路由编写与模型设计实战

快速开发一个网站后台与试图编写实战

模板设计与编写以及完善博客站点的其他功能

后续的话

一、Python WEB开发技术简介

WEB开发技术主要用于进行网站开发,大家可以使用Python进行网站的开发。进行网站开发最常用的语言是PHP,但Python作为一门比较通用的编程语言,它在WEB开发领域同样是比较适合的。在本文中将会向大家介绍如何使用Python进行WEB开发。在使用Python进行WEB开发时,可以使用不同的框架比如Django、Flask等,当然也可以不基于任何框架直接使用CGI编程进行站点开发。本文将与大家分享如何使用Django来进行WEB开发,Django是Python WEB开发中比较成熟的一个框架,足以应对大型项目的压力。

二、Django简介与环境配置与MVT设计模式简介

Django是一款用Python语言设计的比较优秀的WEB开发框架。在安装Django时,只需要在命令行下使用pip install django,并将django-admin.exe所在路径添加到环境变量中即可。安装完成后可以在命令行下直接运行django-admin命令,如果显示出一系列Django命令则表示Django的运行环境已经配置完成。如下图所示。

bV9bny?w=823&h=431

接下来为大家展示如何利用Django创建一个空白的站点项目。在根目录下运行django-admin startproject ali即可在根目录创建一个名为ali的空白站点项目,在目录下可以看到一个空白站点的基本项目结构。通常一个网络站点会同时包含许多小站点,比如阿里云包含了云栖社区、云栖博客这样的子站点。在Django中,这样的子站点也称为APP。如何在一个站点下创建APP呢?首先,在命令行下进入站点项目。然后,使用python manage.py startapp home命令创建一个名为home的子站。接下来为大家介绍一下子站的结构,进入子站的目录,其中admin.py主要用于进行后台的配置。models.py主要用于模型设置,模型设置主要和数据库相关。views.py主要进行视图设置,在Django中,视图主要负责业务逻辑的处理,而前端页面的设计则放在模板中。

bV9bnE?w=651&h=448

Django是采用MVT的设计模式进行设计的。区别于MVC模式。MVC中,M指模型,V指视图(主要负责前端页面的处理),C指控制器(负责业务逻辑的处理),比如ThinkPHP采用的就是MVC架构。而在MVT架构中,M指模型,V指视图(负责业务逻辑处理),T指模板(负责前端界面)。因此,在进行实际开发时,应在视图中实现业务逻辑处理的程序,而前端应在模板中实现。

三、开发一个博客站点项目思路

博客站点案例的展示见视频。

在进行一个站点开发前,首先需要明确站点的功能。其次,设计站点的数据存储方式,即站点的模型。之后依次实现各个功能,并在实现过程中对页面进行设计。在设计过程中需要一些前端的知识。初次接触前端设计时,为了快速完成前端设计,可以利用一些前端框架。比如bootstrap,它提供了一个可视化布局系统,可以通过拖动组件的方式完成设计,并下载其前端源码。其界面如下图。

bV9bn3?w=864&h=433

四、路由编写与模型设计实战

路由,指网站的网址结构,即访问请求的分配。在Pycharm中打开站点项目。打开urls.py文件配置路由。首先,通过from home import views as home_views从home站点中导入视图并起别名为home_views。通过url(r’^admin/’, admin.site.urls)进行网址分配,第一个参数代表网址请求,第二个参数代表将访问请求引入哪一个视图函数中。通过路由编写可以对网址的结构进行规划。

bV9bn7?w=858&h=435

完成路由网址规划后,需要设计整个网站的数据存储结构,即数据模型。默认情况下会使用sqlite作为数据库。如果需要将mysql配置为数据库,可以在settings.py中修改DATABASES部分的代码。如下图。

bV9boj?w=864&h=436

此案例中将使用sqllite作为数据库。模型的设计一般是根据数据的存储情况来进行分析的。首先要分析该站点需要存储什么信息。在此案例中,需要存储的信息包括用户信息、文章信息、类别信息、评论信息。每一种信息都可以用一张表来存储,并根据信息的属性设计表的字段。在设计表字段时应尽量考虑全面一些。本案例中的表设计如下图。

bV9bpg?w=865&h=385

在模型设计完成之后要将其转化为程序语言,模型的实现需在models.py中实现。每一张表都由一个python类实现,每个字段相当于是类中的变量。具体实现详见视频。每个字段需要有对应的存储类型,最常用的类型有CharField用于存储字符串,EmailField代表邮箱地址,IntegerField代表存储整型数据,BooleanField代表存储布尔型数据,TextField代表长文本类型。

五、快速开发一个网站后台与视图编写实战

模型设计完成之后再进行网站后台的开发。开发完网站后台后,才进入视图编写即功能实现环节。在Django目录结构中,每一个文件都有各自的分工。后台开发需要在admin.py中完成。首先需要在admin.py中注册之前设计的模型,即将模型绑定到后台中,这样就可以在后台中管理这些模型了。通过绑定,也提供了一个可视化的环境,避免了通过代码来控制数据库。接下里向大家讲解如何在后台中注册模型。首先,从models中导入各个模型。接着,将需要在后台中展现的信息利用list_display展示出来。以展现用户信息为例,list_display中不包含“passwd”,后台就看不到用户的密码。最后利用admin.site.register将信息真正绑定到后台,它有两个参数,第一个参数表示需要绑定的模型,第二个参数表示需要展现的信息。这样,后台就注册完毕了。

bV9bpE?w=865&h=437

下一步,创建一个后台账号。由于案例中使用了数据库,所以在创建超级管理员之前要先同步数据库,即利用python将模型同步成数据库,进入terminal终端,通过python manage.py makemigrations和python manage.py migrate命令来实现。之后再使用命令python manage.py createsuperuser创建超级管理员,如下图。之后就可以运行站点并登陆后台查看数据。

bV9bpK?w=801&h=119

接下来讲解视图的编写。视图编写是Django站点编写的核心。一般来说,每一个功能会以一个视图函数的形式实现,视图在views.py中编写。接下来将为大家一一介绍功能实现过程。第一,实现文章界面展示的功能。首先,需要获取文章的ID,并在网址中给出。因此要在路由中进行规划,并在article视图函数中,将ID设为参数。

bV9bp1?w=862&h=308

而视图函数要实现的功能就是要根据文章ID将文章查询出来,就需要用到模型。最常用的查询方式有以下两种,第一种,比如Article.objects.filter(id=aid).values(“id”, “title”, “author”, ”content”)。filter表示进行信息筛选,values表示要取出的字段。第二种, Typemsg.objects.values(“id”,”typename”)不进行信息筛选,直接取出字段。另外大家应掌握通过模型写入数据, Usermsg.objects.create(name=name, passwd=passwd, email = email)。在实现文章查找时,首先找到文章存储在Article表格中。在视图中导入Article模型,利用查询命令过滤ID取出文章相关信息。然后,使用render()为其分配一个模板。

bV9bqR?w=865&h=437

六、模板设计与编写以及完善博客站点的其他功能

接下来介绍模板的设计与编写及其他功能的完善。模板影响着界面的美观程度。首先,要在settings.py中开启TEMPLATES,在‘DIRS’中设置模板的路径。所有需要的前端模板都可以放在该文件目录下。比如,我们利用render为Article分配detail.html这个模板。进入detail.html进行编写。前端设计中需要动态变化的部分放在{{…}}中,表示Django中的变量。比如,利用thisarticle.title获取当前文章标题,thisarticle.author获取当前文章作者,thisarticle.content获取当前文章内容。值得注意的是{{thisarticle.content | safe}}通过safe源码解析,否则将直接在网页中展示HTML源码。

bV9bqZ?w=863&h=437

注册功能

在views.py中实现业务逻辑处理。首先观察session.has_key,若查找到,说明用户已登陆无需注册,则直接重定向到根目录。否则进行注册,利用render为其分配reg.html。在reg.html中完成表单设计,点击提交后就将信息提交给当前页面。当前页面中,通过request.POST捕获信息,随后操作Usermsg模型,写入数据库。

bV9bq6?w=863&h=433

登陆功能

首先,需要login.html模板,输入姓名密码并提交。在视图中,首先判断当前是否登陆,若已登陆则重定向到根目录。否则返回登陆界面,捕获登陆信息,在模型中通过filter查找该条用户信息。若查到到该条记录则登陆成功并在session中保存当前用户名。否则登录失败。

bV9brm?w=864&h=436

登出功能

只需通过del将会话信息删除即可。

首页展现

首页上动态变化的内容包括,博文和博文分类。在视图中调用模型获取博文分类和文章信息。然后进行切片运算。由于在首页上不可能完全展示数据库中的所有博文,因此要进行切片(通过[:20]取前二十个)。然后在模板中通过一个for循环遍历博文类别进行展示。文章同理。详细代码见视频。

博文列表页,实现方式与首页类似。只是不需要进行切片运算。

博文发布

要求用户登陆并有管理员权限。首先通过session.has_key 判断是否登陆,如果没登陆先跳转到登陆页面。若已登陆,则捕获当前用户信息并判断是否有管理员权限。若不是管理员则重定向到首页。若是管理员则展现文章发布的模板postarticles.html。在模板中首先设计表单。其次博文类别需要以单选按钮展示。在发布文章时就需要用到富文本编辑器。这里,用kindeditor作为富文本编辑器。donfig.js中设置何时打开富文本编辑器。案例中,我们要求textarea[name=”content”]时调用。然后只需要在输入文章内容处配置textarea将name字段设置为content再通过POST提交到views中,写入数据库。代码详见视频。

bV9brB?w=847&h=181

bV9brE?w=845&h=415

利用Django开发站点关键还在于多实践。

七、后续的话

阿里云Python技术直播,希望能帮助大家入门。希望大家在学习过程中也能学会自主解决问题比如查找资料。其次,项目导向是一种比较好的学习方式。可以给自己设立一个项目目标,在期间进行不断学习。前期轻理论重实战,后期轻实战重理论。

详情请阅读原文

weixin_39630735
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python实现简单的网站开发指南
吃不胖.
09-05 752
在上面的代码中,我们定义了两个动态路由,分别将用户请求的/user/<username>和/post/<int:post_id>路径映射到show_user_profile和show_post函数。在这些路由中,我们使用了变量和类型转换器,例如在/user/<username>路由中我们使用了字符串变量username,而在/post/<int:post_id>路由中我们使用了整数变量post_id。在上面的代码中,我们定义了一个HTML模板,它包含了一个标题、一个标题和一个内容。
Python+Web开发实战
05-17
与其它Web后端语言不同,Python语言需要自己编Web服务器。 如果你使用一些现有的框架的话,可以省略这一步; 如果你使用Python CGI编程的话,也可以省略这一步;
Python Web开发入门程(非常详细)
Python84310366的博客
07-10 2464
Python是一种非常流行的编程语言,被广泛应用于数据科学、Web开发、人工智能、机器学习等领域。Python语言易学易用,是许多初学者进入编程世界的入门选择。然而,学习Python并不是一件简单的事情,尤其是对于初学者而言。在本文中,我们将提供一些Python学习方法,以及如何使用Flask框架来深入了解PythonWeb开发。首先,学习Python最好的方法之一是通过互动式程,例如Codecademy、DataCamp等平台。
Python Django Web典型模块开发实战_前后端分离项目上线部署到云服务器_编程项目案例实例详解课程程.pdf
06-16
Python Django Web典型模块开发实战_前后端分离项目上线部署到云服务器_编程项目案例实例详解课程程.pdf
Python开发网站的完整指南
weixin_19970108018的博客
10-26 923
Python是一种功能强大的编程语言,适用于开发各种Web应用程序。无论您是一个经验丰富的开发人员还是一个新手,Python都可以满足您的需求。本文介绍了如何使用Django框架、模板引擎、静态文件管理、安全和认证以及部署等工具来构建一个完整的Web应用程序。希望这篇文章对您有所帮助!
Python Web开发(Django)
最新发布
[ 「今でもあなたは私の光。」❤️如今你依旧是我的光。
11-07 335
python web,django框架
《Django 3 Web应用开发从零开始学(视频学版)》简介
brucexia的专栏
08-23 384
框架基础与环境搭建、框架常用配置、模型、视图与路由、模板、表单、后台管理、异常、测试、认证系统、安全与国际化,以及常用。框架,以及系统设计人员提高设计水平,也适合高等院校、中职学校和培训机构计算机及相关专业的师生学参考。全书讲解清晰、通俗易懂、重点突出、示例丰富、代码精练,基本涵盖。课件与学视频,方便读者快速入门以及高校相关课程师生的学活动。个实战项目(投票应用、个人博客应用),可以帮助读者进一步掌握。应用,可以备一份,以便快速进入这一开发领域。框架的应用开发技术,可以帮助读者快速掌握。
手把手你学Python(进阶篇)
06-29
本系列课程分为三部分:手把手你学Python(基础篇)、手把手你学Python(进阶篇)、手把手你学Python实战篇)。面向零基础用户,从无到有,从易到难,层层递进,带你遨游Python世界;采用案例驱动,即学即练...
Python自动化测试程 完整版PDF
04-07
Python自动化测试程,从零基础开始手把手有详细的步骤你怎么自动化测试用例。测试人员大多是希望利用编程诧言来帮劣他实现自劢化的测试,而丌需要花费大量的精力来学习一门编程诧言,所以在本文档中丌会过多...
python Django轻量级sass管理平台手把手实战演练
06-20
全套视频是基于django开发的Bug管理平台,为用户提供理想的工作云平台,涵盖了众多企业级功能,便捷的团队协作,轻量的项目管理, 完备的问题系统,大容量的...学完本课,你可以掌握用Django开发企业级web应用的技能
OnlineForumPlatform:在线论坛平台,使用Python Web全栈开发,使用Flask框架进行开发
05-10
   大家好,我叫亓官劼(qí guān jié ),这个《Python Web全栈开发入门实战程》是一个零基础的实战程,手把手带你开发一套系统,带你了解Python web全栈开发这篇文章的初衷就是想给想入门Python ...
项目实战 Python Django 个人网站 电影推荐网站 完整代码
05-31
完整版Python-Django项目,调试通过,直接下载即可运行包括:登陆、注册、浏览、搜索、发布资源、评论等多个功能。可作为新手练习,课程设计,毕业设计,代码注释详细,便于理解。
python网站开发案例_Python Web框架Flask下网站开发入门实例
weixin_39688856的博客
11-23 45
一、Flask简介Flask 是一个 Python 实现的 Web 开发微框架。官网:http://flask.pocoo.org/二、Demo1、代码结构.├── blog.py├── static│ ├── css│ │ └── index.css│ ├── images│ │ ├── cat.jpg│ │ └── sheying1229.jpg│ └── ...
Python web实战 | 使用 Django 搭建 Web 应用程序 【干货】
Rocky006的博客
07-26 6133
从社交媒体到在线购物,从在线银行到在线医疗,Web 应用程序为人们提供了方便快捷的服务。Web 应用程序已经成为了人们日常生活中不可或缺的一部分。搭建一个高效、稳定、易用的 Web 应用程序并不是一件容易的事情。本文将介绍如何使用 Django 快速搭建一个强大的 Web 应用程序。我将从如何安装 Django 开始,一步一步地讲解如何创建、设计和部署一个完整的 Web 应用程序。
Django 的安装和基础使用
AI悦创·编程私教1v1
03-04 2236
Pythonweb 开发,非常的方便和快捷,这个优势,得益于 Python 的两个框架,一个 Flask ,一个 Django 。 Flask 小,微框架,只含有核心组件,其他的内容,都需要找库或者自行开发,适用进阶学习,以及高手使用,完全按着自己的思路,来使用 flask 搭建网站。 Django 大而全,开发迅速,组件完整,可以快速的搭建一个站起来,但是必须要安装Django的思路来搭建,所以适合新手学习。 Django 与 Flask 个人观点: django 和 flask 是两种完全不同风
Python制作网页Day 1(一个简单的网页)
April_town的博客
07-02 2万+
一个简单的网页。为了让aaaaaa传入html中显示出来,我们需要在两文件之间用一个变量联系起来,这个变量命名随意(最好与原变量name区分开来),如namex,它的作用是接受name所赋的字符,然后在html中替换{{namex}}。当我们打开网页并在网址后添加"/haha"时,仍然无法成功看到结果,因为我们还需要把0.0.0.0这一地址更改成电脑在局域网下的IP地址,这样就可以在本机查看运行结果。在网址后添加"/haha",得到与上一次一样的运行结果。
送书 | Django实战 Python Web典型模块与项目开发
Python编程与实战的博客
11-25 814
大家好,我是村长, 又双叒叕到了每周免费送书的时刻,本周送的书籍如下,后台回复 送书即可免费参与书籍简介本书结合样例,介绍 Django 的基础知识、主要模块的开发以及权限管理等高级内...
Pythonweb开发,推荐几个能立马上手的小项目
热门推荐
Q2605894893的博客
08-02 5万+
web开发,什么语言最好? 所有的编程语言都能进行开发web,java就不用多说了,PHP从应用范围到岗位需求来说都是很强的,Python+Flask的框架也让人非常惊艳。其实没有什么最好,适合的才是最好;不过——   Python这门优美的语言是非常适合web开发的,基于Python的Django框架简单便捷且很强大。 那么作为新手该如何上手这门语言?一切不敲代码的学编程手段都是扯...
python爬取物流信息_手把手你用Python爬取快递100查询你的物流信息
05-18
好的,我可以为您提供相关的Python爬虫的程。 首先,您需要安装Python的requests和BeautifulSoup库,可以通过以下命令进行安装: ``` pip install requests pip install beautifulsoup4 ``` 接下来,您可以使用...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • win10下装黑苹果双系统_手把手教你轻松安装 Win10/ 黑苹果macOS10.14.1双系统 9377
  • python xlrd获取excel行数_python xlrd 模块(获取Excel表中数据) 7566
  • git clone 指定版本_关于Git的基础操作 5613
  • gis可达性分析步骤_干货来了!ArcGIS空间分析—空间聚类模式分析 5170
  • 个人搭建云手机系统_如何利用云服务器搭建个人网站 5072

大家在看

  • 【课程系列01】某乎的AI大模型全栈工程师-第4期 23
  • btstack协议栈实战篇--A2DP Sink - Receive Audio Stream and Control Playback 10
  • 【数据结构与算法】使用数组实现栈:原理、步骤与应用 1135
  • 跨链协议中Cosmos IBC、Polkadot/XCM、Celer Network的区别以及用途 430
  • Mybatis-Plus中Page和IPage的区别 382

最新文章

  • 飞车老显示pvp服务器断开连接,lol客户端出现PVP.net断开临时解决方案公告
  • 刀塔传奇服务器维护,刀塔传奇新闻资讯_符文工坊_小冰冰传奇开服时间表_第一手游网...
  • ja+ajax,GitHub - smallsong/JAFW: jQuery Ajax Framework
2021年144篇
2020年209篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

PHP网站源码永新百度竞价包年推广公司焦作企业网站设计哪家好广州如何制作网站多少钱仙桃网站推广晋中网站优化推广价格萍乡关键词按天计费价格淮南网站推广系统价格抚州SEO按天计费多少钱朝阳阿里店铺托管多少钱柳州模板推广公司防城港如何制作网站六安模板推广周口营销网站贵港至尊标王报价黔西南至尊标王松原百度标王报价伊犁百搜标王哪家好上海营销型网站建设公司玉树建网站报价珠海企业网站设计价格玉树网站排名优化报价贵阳seo网站推广报价兴安盟网站优化按天收费推荐温州英文网站建设焦作模板推广哪家好福州网站设计模板公司安康网站优化推广报价宝鸡建站公司汕尾设计公司网站价格贵港百度竞价哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化