怎么用python实现一个页面的>开辟/h2>
谢邀,去年春节期间,没事报了一个python 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实现。具体步骤如下:
打开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怎么解析呢
找到第二段被注释的节点
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
<!-- 这里的/cgi-bin/*指定了浏览器访问的地址,与前面WEB-INF/cgi-bin相对应。 -->
配置权限
// 打开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>
此时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>')
部署运行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,为你讲述不一样的码农生活。