首页 » Web前端 » 怎么用python实现一个页面的开发「web连接数据库的方法」

怎么用python实现一个页面的开发「web连接数据库的方法」

访客 2024-10-07 0

扫一扫用手机浏览

文章目录 [+]

怎么用python实现一个页面的>开辟/h2>

谢邀,去年春节期间,没事报了一个python web开发的网络课程,根据自己的学习情况来回答一下。

一个页面的开发,应该是分前端和后端的。

怎么用python实现一个页面的开发「web连接数据库的方法」 怎么用python实现一个页面的开发「web连接数据库的方法」 Web前端

关于后端

怎么用python实现一个页面的开发「web连接数据库的方法」 怎么用python实现一个页面的开发「web连接数据库的方法」 Web前端
(图片来自网络侵删)

在python中有两个最常见的开发框架:Django,flask。

Django大而全,什么功能模块都已经封装好了,调用即可;flask小而精,没有很高的封装,但是有许多功能模块,需要我们自己去集成。

当初学习的那个网络课程是用flask框架来做的,上手很简单:

当初学习的时候能写一个小的网站,本来想转行做python后端开发的,但是后来还是接着做数据挖掘了,许久不用,倒是有点生疏了。总得来说,有几大模块:

路由

route() 装饰器把一个函数绑定到对应的 URL 上,Flask 的 URL 规则基于 Werkzeug 的路由模块。这个模块背后的思想是基于 Apache 以及更早的 HTTP 服务器主张的先例,保证优雅且唯一的 URL。

模板渲染 Jinja2

用 Python 生成 HTML 十分无趣,而且相当繁琐,因为你必须手动对 HTML 做转义来保证应用的安全。为此,Flask 配备了 Jinja2 模板引擎。当然你也可以使用其他的模板引擎,但是建议你还是使用jinja2模板

请求对象request

你可以使用全局 request 对象访问进入的请求数据。 Flask 处理进入的请求数据并允许你用这个全局对象访问它。如果你工作在多线程环境,Flask 内部保证你总会在当前线程上获取正确的数据。

数据库交互-Flask-SQLAlchemy

通过sqlalchemy对数据库增删改查使用的是orm模式,不需要写SQL语句。

在数据库中,一个表就是一个python类,一个类的实例就是表中的行。

在开发过程中,会用到一些python的高级应用:

装饰器:在权限验证的时候很需要用到

模块的导入:防止循环导入

图像处理:验证码>天生/span>

property使用:密码加密时>利用/span>

关于前端

如果对前端不熟,想做一个小网站练练手,推荐你使用Bootstrap

里面有各种的CSS样式,各种组件,JS插件,还有一些网站实例供你参考,对前端HTML,CSS 不是很熟悉的,可以通过这略微修改快速搭建一个前端页面。

后记:

将来的数据挖掘工作者可能也需要懂网站后端开发,因为以后建模不会一直都是在单机中,可能会集成到网站中,实时数据流入模型,结果展示在网站上。

如果需要大而全的框架,推荐Django

如果需要小型轻量级的框架,考虑Flask

不过这些都是基本的框架,真正和页面有关的是业务,而业务功能的实现不一定使用python,这和你具体要实现的业务有很大的关系。

之前刚好学习过一段时间的Python,我下面来讲讲比较古老的tomcat运行CGI,使用Python实现。具体步骤如下:

  1. 打开web.xml文件【D:\apache-tomcat-7.0.57\conf\web.xml】,找到这一段被注释的节点(如下),如果你从没自己修改过,那应该是被注释的,你还需要添加一些参数。

<servlet>

<servlet-name>cgi</servlet-name>

<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

<init-param>

<param-name>clientinputTimeout</param-name>

<param-value>100</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>passShellEnvironment</param-name>

<param-value>true</param-value>

</init-param>

<init-param>

<param-name>cgiPathPrefix</param-name>

<param-value>WEB-INF/cgi-bin</param-value>

</init-param>

<init-param>

<param-name>executable</param-name>

<param-value>C:/Users/sundc/AppData/Local/Programs/Python/Python36-32/python.exe</param-value>

</init-param>

<load-on-startup>5</load-on-startup>

</servlet>

// 解释几个重要的参数:

passShellEnvironment: 与Python解析器解析CGI脚本有关,但是一定要配置好Python的环境变量;

cgiPathPrefix: 与Server能够访问的脚本目录有关,与第二步内容相对应;

executable: (这是我的安装路径,不推荐安装到C盘)与Python解析器有关,没有解析器,Server怎么解析呢

  1. 找到第二段被注释的节点

<servlet-mapping>

<servlet-name>cgi</servlet-name>

<url-pattern>/cgi-bin/*</url-pattern>

</servlet-mapping>

<!-- 这里的/cgi-bin/*指定了浏览器访问的地址,与前面WEB-INF/cgi-bin相对应。 -->

  1. 配置权限

// 打开context.xml,添加:privileged=”true”

<Context privileged="true">

<!-- Default set of monitored resources -->

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<!--

<Manager pathname="" />

-->

<!-- Uncomment this to enable Comet connection tacking (provides events

on session expiration as well as webapp lifecycle) -->

<!--

<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />

-->

</Context>

  1. 此时Tomcat应该就可以正常解析放在正确路径的cgi程序了。下面的python cgi文件hello.py

#!/usr/bin/env

print("Content-type:text/html")

print('') #空行,告诉服务器结束头部

print('<html>')

print('<head>')

print('<meta chatset="utf-8">')

print('<title>Hello Word - 我的第一个 CGI 程序!</title>')

print('</head>')

print('<body>')

print('<h2>Hello Word! 我是一个来自偶然的菜鸟,写的第一个 CGI 程序</h2>')

print('</body>')

print('</html>')

  1. 部署运行tomcat中的CGI程序

// 1.在Tomcat默认的工作目录下面新建项目cgitest,即cgitest目录。

// 2.在新建的项目目录下,新建WEB-INF目录,这个是Web程序的标准安全目录,客户端无法访问,只能在服务器端访问

// 3.将原来创建的hello.py存放在WEB-INF目录下的cgi-bin目录下。

// 4.现在就可以将Tomcat WEB容器启动,Tomcat自动将cgitest部署,访问 http://localhost:8080/cgitest/cgi-bin/hello.py ,即可出现页面。

作者:夕阳雨晴,欢迎关注我的头条号。偶尔美文,主流Java,为你讲述不一样的码农生活。

标签:

相关文章

SEO推广,加班背后的机遇与挑战

搜索引擎优化(SEO)已经成为企业提升品牌知名度、扩大市场份额的重要手段。SEO推广并非一蹴而就,需要企业投入大量人力、物力、财力...

Web前端 2025-03-29 阅读0 评论0

SEO智能手环,科技与健康的完美融合

智能手环已经成为人们生活中不可或缺的电子产品。在众多智能手环品牌中,SEO智能手环凭借其卓越的性能和独特的功能,赢得了广大消费者的...

Web前端 2025-03-29 阅读0 评论0